Код программы на языке Python
n = int(input())
suma = 0
mult = 1
while n > 0:
digit = n % 10
suma = suma + digit
mult = mult * digit
n = n // 10
print("Сумма:", suma)
print("Произведение:", mult)
Пример выполнения:
253
Сумма: 10
Произведение: 30
Изменение значений переменных можно записать в сокращенном виде:
...
while n > 0:
digit = n % 10
suma += digit
mult *= digit
n //= 10
...
Приведенная выше программа подходит только для нахождения суммы и произведения цифр натуральных чисел, то есть целых чисел больше нуля. Если исходное число может быть любым целым, следует учесть обработку отрицательных чисел и нуля.
Если число отрицательное, это не влияет на сумму его цифр. В таком случае достаточно будет использовать встроенную в Python функции abc(), которая возвращает абсолютное значение переданного ей аргумента. Она превратит отрицательное число в положительное, и цикл while с его условием n > 0 будет работать как и прежде.
Если число равно нулю, то по логике вещей сумма его цифр и их произведение должны иметь нулевые значения. Цикл срабатывать не будет. Поскольку исходное значение mult - это 1, следует добавить проверку на случай, если заданное число - это ноль.
Программа, обрабатывающая все целые числа, может начинаться так:
n = abs(int(input()))
suma = 0
mult = 1
if n == 0:
mult = 0
...
Заметим, если в самом числе встречается цифра 0 (например, 503), то произведение всех цифр будет равно нулю. Усложним задачу:
Вводится натуральное число. Найти сумму и произведение цифр, из которых состоит это число. При этом если в числе встречается цифра 0, то ее не надо учитывать при нахождении произведения.
Для решения такой задачи в цикл добавляется проверка извлеченной цифры на ее неравенство нулю. Делать это надо до умножения на нее значения переменной-произведения.
n = int(input())
suma = 0
mult = 1
Достарыңызбен бөлісу: |