PascalABC.NET beginvar s := ReadReal('Число:').ToString.Remove('.','-');Println('Сумма:',s.ToArray.ConvertAll(c->c.ToDigit).Sum);Println('Разрядов:',s.Count);end.
В отличии от программы данной в другом ответе, эта в разы короче и быстрей, а также работает с отрицательными и вещественными числами.
program z1;
var a,k,s: integer;
begin
write ('a = ');
readln (a);
s:=0;
k:=0;
repeat
s:=s+a mod 10;
k:=k+1;
a:=a div 10
until a=0;
writeln('s = ',s);
writeln('k = ',k)
end.
В отличии от программы данной в другом ответе, эта в разы короче и быстрей, а также работает с отрицательными и вещественными числами.
Пример работы: