Напишите программу,которая считает сумму цифр введенного числа (паскаль)
Programи fr;
var a, sum: integer;
Begin
Writeln ('Введите число');
Readln (a);
while a<>0 do
begin
sum:=sum+(a mod 10);
a:=a div 10;
end;
Writeln ('Сумма цифр ',sum);
end.
Почему используется вот такая запись ( что это значит ) - sum:=sum+(a mod 10) ???
Можно ли написать эту программу как то через другой цикл? ( если да,то напишите его)
Заранее СПАСИБО
Ответы
Ответ дал:
0
a mod 10 - это остаток от деления а на 10 (последняя цифра числа, записанного в десятичной системе счисления)
можно по другому : сделать а типа string и, проходя по строке, прибавлять к сумме каждый символ строки (переведенный в цифру)
можно по другому : сделать а типа string и, проходя по строке, прибавлять к сумме каждый символ строки (переведенный в цифру)
Ответ дал:
0
sum:=sum+(a mod 10) почему sum+(a mod 10)? почему без скобок нельзя?
Ответ дал:
0
попробуй, может можно
Ответ дал:
0
а если нельзя, то потому, что приоритет операции сложения выше чем операции остатка от деления
Ответ дал:
0
а зачем складывать? потому что сумма ?
Ответ дал:
0
ну, да, а для чего же ещё?)
Ответ дал:
0
var a,s:integer;
begin
write ('Введите число: ');
readln(a);
repeat
s:=s+a mod 10;
a:=a div 10
until a=0;
write ('Сумма цифр: ',s);
end.
a mod 10 - эта операция определяет последнюю цифру числа (остаток от деления на 10)
первоначально sum равно 0
sum:=sum+(a mod 10) - накапливаем сумму всех цифр поочерёдно
Ответ дал:
0
Большое спасибо
Вас заинтересует
2 года назад
2 года назад
3 года назад
3 года назад
9 лет назад
9 лет назад