Сумма и произведение цифр числа

Найти сумму и произведение цифр, введенного натурального числа. Например, если введено число 325, то сумма его цифр равна 10 (3+2+5), а произведение 30 (3*2*5).

  1. Присвоить переменной, в которой будет накапливаться сумма цифр, значение 0, а переменной для накопления произведения - значение 1 (если присвоить 0, то при умножении результат обнулится).
  2. Пока введенное число не уменьшится до нуля выполнять следующие действия:
    1. В переменную для суммы цифр добавлять последнюю цифру числа, извлеченную при нахождении остатка от деления на 10.
    2. Значение переменной для хранения произведения цифр умножить на последнюю цифру числа.
    3. Избавиться от последней цифры числа, разделив его нацело на 10.
var
    n, sum: word;
    mult: longint;
begin
    readln(n);
    sum := 0;
    mult := 1;
    while n > 0 do begin
        sum := sum + n mod 10;
        mult := mult * (n mod 10);
        n := n div 10;
    end;
    writeln('Sum: ', sum);
    writeln('Mult: ', mult);
end.
462
Sum: 12
Mult: 48
#include <stdio.h>
 
main() {
    int n, s, m;
    scanf("%d",&n);
    s = 0;
    m = 1;
    while (n>0) {
        s += n%10;
        m *= n%10;
        n = n/10;
    }
    printf("Сумма: %d\nПроизведение: %d\n", s, m);
}
245
Сумма: 11
Произведение: 40
n = int(input())
s = 0
m = 1
while n>0:
    s += n%10
    m *= n%10
    n = n//10
print("Сумма:", s)
print("Произведение:", m)
567
Сумма: 18
Произведение: 210
алг сумма цифр
нач
  цел n, s, m
  ввод n
  s := 0
  m := 1
  нц пока n>0
    s := s + mod(n,10)
    m := m * mod(n,10)
    n := div(n,10)
  кц
  вывод s, нс, m
кон
2932
16
108
input n
sum = 0
mult = 1
while n > 0
        sum = sum + n%10
        mult = mult * (n%10)
        n = n\10
endwhile
print "Сумма: " + sum
print "Произведение: " + mult
567
Сумма: 18
Произведение: 210

Комментарий

В данной программе при введении числа с нулём произведение будет выдавать ноль.Надо добавить в цикл условие if (n mod 10)<>0 then что бы он не умножался на ноль.