перемножение элементов списка
Не понимаю, в чем ошибка.
Хочу написать функцию для перемножения цифр в числе пока оно не станет однозначным:
def count(a):
while len(str(a)) >1 :
res = 1
for i in range(len(str(a))):
res *= int(str(a)[i])
print(res)
count(999)
При первом проходе получается верный ответ 729, а дальше 81 и 9. Почему так получается?
Ответы (1 шт):
Автор решения: Dareten
→ Ссылка
def count(a):
while a >= 10:
res = 1
for i in range(len(str(a))):
res *= int(str(a)[i])
a = res
print(res)
count(999)
# вывод 2
Ошибка была в том, что вы не изменяли значение a, а проверяли лишь изначальное, создавая бесконечный цикл.