Найдем сумму цифр числа 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;