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

Одной из часто используемых задач для начинающих изучать программирование является задача нахождения суммы и произведения цифр числа. Задача формулируется так:

Дано число. Найти сумму и произведение его цифр.

Например, сумма цифр числа 253 равна 10-ти, так как 2 + 5 + 3 = 10. Произведение цифр числа 253 равно 30-ти, так как 2 * 5 * 3 = 30.

Пусть n – само число, suma – сумма его цифр, а mult – произведение. Тогда алгоритм нахождения суммы и произведения цифр можно словесно описать так:

  1. Переменной suma присвоить ноль.
  2. Переменной mult присвоить единицу. Присваивать 0 нельзя, так как при умножении на ноль результат будет нулевым.
  3. Пока переменная n больше нуля повторять следующие действия:
    1. Найти остаток от деления n на 10, то есть извлечь последнюю цифру числа.
    2. Добавить извлеченную цифру к сумме и увеличить на эту цифру произведение.
    3. Избавиться от последнего разряда числа n путем деления нацело на 10.

Код программы на языке Python

a = abs(int(input()))
 
suma = 0
mult = 1
 
while a > 0:
    digit = a % 10
    suma += digit
    mult *= digit
    a = a // 10
 
print("Сумма:", suma)
print("Произведение:", mult)

Пример выполнения:

234
Sum: 9
Product: 24

В языке Python операция нахождения остатка от деления обозначается знаком процента - %. Деление нацело - двумя слэшами - //. Функция abs() возвращает абсолютное значение числа. Она нужна, чтобы также можно было посчитать сумму и произведение цифр отрицательного числа. 

Приведенный выше алгоритм нахождения суммы и произведения цифр числа следует считать классическим, или универсальным. Однако средства языка программирования могут позволить решить задачу другим, зачастую более простым, путем. Например, в Python можно не преобразовывать введенную строку с числу, а извлекать из нее отдельные символы, которые преобразовывать к целочисленному типу int:

n = input()
 
suma = 0
mult = 1
 
for i in n:
    suma += int(i)
    mult *= int(i)
 
print(suma)
print(mult)

Комментарии