Как составить цикл в python который перемножает цифры числа - Общение Python мододелов

Вопрос Как составить цикл в python который перемножает цифры числа

Регистрация
1 Ноя 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
b = len(str(a)) #Длинна строки

i = 1

a = int(input())

counter = 1

while i <= b:

counter *= a % 10

a = a // 10

i += 1

print(counter) # Произведение цифр числа



#При работе цикла он не перемножает цифры по типу (1*2*4*8*7)

а просто выводит единицу
 
Регистрация
17 Ноя 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Если предположить что это целое, то и разобрать можно сразу на цифры не прибегая к "int % 10".
И вместо цикла использовать reduce from functools import reduce

num = "1234"
digits = [int(v) for v in num]
print(reduce(lambda a, v: a * v, digits))
# => 24 ... или так reduce(lambda a, v: a * int(v), num, 1)
 
Регистрация
11 Авг 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
def multiply_digits(number):
"""Перемножает цифры числа.

Args:
number: Число, цифры которого нужно перемножить.

Returns:
Произведение цифр числа.
"""

product = 1
for digit in str(number):
product *= int(digit)
return product

# Пример использования
number = 12345
result = multiply_digits(number)
print(f"Произведение цифр числа {number}: {result}")
```
 
Регистрация
23 Ноя 2013
Сообщения
101
Репутация
-3
Спасибо
0
Монет
0
попробуй рекурсией

def foo(a):
□□□□if a<=1:
□□□□□□□□return 1
□□□□return (a%10)*foo(a//10)

потом вызови его
print(foo(123))
 
Сверху Снизу