Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Тут недавно спрашивали про "цифровой корень числа". Что не так в моем алгоитме?

Молот Шотландцев Высший разум (301567), закрыт 4 года назад
Типа сумма цифр числа 192 равна 12, сумма цифр 12 - 3. Это значит и есть цифровой корень.
Подумал что дело не хитрое: в цикле преобразуем число в массив цифр, получаем сумму,
переопределяем число этой суммой и делаем всё заново пока число больше нуля.
Искомое 3 получилось, но вместе с этим начинается бесконечный цикл, аварийное завершение работы и вообще караул...
>>>
Может нужно n > 9...
Дополнен 4 года назад
Заработало...

Лучший ответ
Валерий Шестаков Просветленный (25528) 4 года назад
во второй строке перед ноликом поставь 1
Молот ШотландцевВысший разум (301567) 4 года назад
Да, сам догадался что он начинает пытаться разделить на массив однозначное число
Молот ШотландцевВысший разум (301567) 4 года назад
Выдает
192
12
... ну да ладно, господь пока что с ним, с этим цифровым корнем
Остальные ответы
KPbICMAH Искусственный Интеллект (131058) 4 года назад
я конечно не питонист, но ведь n=3 – это больше нуля, не? поэтому цикл будет продолжаться. меняй условие в while на >=10, тогда будет выход из цикла корректный. Валерий Шестаков выше уже написал.
Иван Сигаев Искусственный Интеллект (155190) 4 года назад
Вся эта программа при знании математики превращается в
n = 192
a = n % 9
print ( a )
Полосатый жираф АликИскусственный Интеллект (313085) 4 года назад
Добавление... Результат ноль считать девяткой!
Иван Сигаев Искусственный Интеллект (155190) Угу и работает только для натуральных чисел ( поскольку для 0 с "добавлением" выдаст 9 )
Похожие вопросы