Найти тему
Информатика Сегодня

Найдем сумму цифр числа 5-ю способами в PascalABC.NET

Найдем сумму цифр числа 5-ю способами в PascalABC.NET

1) Через обработку числа

2) Через обработку строки

3) Через рекурсию

4) Через список

5) Через технологию LINQ

## uses school;

{сумма циклом строкой}
function f1(x: integer): integer;
begin
var sum := 0;
foreach var i in x.ToString do
sum += i.ToDigit;
Result := sum;
end;


{сумма циклом while}
function f2(x: integer): integer;
begin
var sum := 0;
while x <> 0 do
begin
sum += x mod 10;
x := x div 10;
end;
Result := sum;
end;

{Рекурсия}
function f3(x: integer):integer := x < 10 ? x : f3(x div 10) + x mod 10;

var x := Random(1000000,9999999);
println('Число:',x);


{LINQ}
x.ToString.Where(x -> x.IsDigit).Select(x -> StrToInt(x)).Sum.Println;
x.ToString.ToCharArray.Select(c -> c.ToDigit).sum.println;

{List - список}
x.Digits.Sum.println;

f1(x).println;
f2(x).println;
f3(x).println;