RosettaCodeData/Task/Sum-digits-of-an-integer/Pascal/sum-digits-of-an-integer.pascal
2015-02-20 00:35:01 -05:00

27 lines
600 B
Text

Program SumOFDigits;
function SumOfDigitBase(n:UInt64;base:LongWord): LongWord;
var
tmp: Uint64;
digit,sum : LongWord;
Begin
digit := 0;
sum := 0;
While n > 0 do
Begin
tmp := n div base;
digit := n-base*tmp;
n := tmp;
inc(sum,digit);
end;
SumOfDigitBase := sum;
end;
Begin
writeln(' 1 sums to ', SumOfDigitBase(1,10));
writeln('1234 sums to ', SumOfDigitBase(1234,10));
writeln(' $FE sums to ', SumOfDigitBase($FE,16));
writeln('$FOE sums to ', SumOfDigitBase($F0E,16));
writeln('18446744073709551615 sums to ', SumOfDigitBase(High(Uint64),10));
end.