Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N — входной, S — выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.
ВАЩЕ не врубаюсь, помогите пожалуйста!
Воспользуйся поиском!Подобные задачи решались.
Есть число, находишь остаток от деления на 10, ложишь в сумматор, делишь нацело на 10 и так до тех пор пока не осталось число которое не делится на 10 (однозначное) его просто прибавлешь к сумматору и так с каждым числом.
Есть простое решение с множеством,но поскольку я с налодонником выложу чуть позже..
while number<>0 do begin
summ:=summ + (number mod 10);
number:=number div 10;
End;
summ:=summ + Abs(number mod 10);, иначе получишь отрицательную сумму при переданном отрицательном числе... Ну, или после цикла взять сумму по модулю...
Вот это объеденение всего вышеупомянутого :
uses crt;
var n,sum : integer;
procedure SumDigits (N : integer; var S : integer);
begin
while n <> 0 do
begin
s:= s + abs(n mod 10);
n:= n div 10;
End;
end;
begin
readln (n);
SumDigits (n,sum);
writeln (sum);
readkey;
end.