А на какой число сразу интить? С задачей лучше работать как со строкой. Причем за один цикл две решить...
Это классика, без конвертирования и возведения в степень: res = 0 a = 1234 while a != 0: d = a % 10 res = res * 10 + d a = a // 10 print(res)
работает. спасибо. почему классика?
Потому что популярная задачка. У меня когда-то даже на собеседовании такое просили сделать без использования дополнительной памяти. Пожалуйста
Тогда библиотеку не стоит подключать
Без использования дополнительной памяти это in place?
Не совсем верно выразился. Имел в виду не используя O(n) памяти, где n - длинна числа, а лишь O(1). То есть без всякого рода коллекций для хранения всех разрядов
С другой стороны, длинна числа ограничена относительно небольшой константой, либо используется длинная арифметика и тогда это тоже превращается в коллекцию хранящую значения всех разрядов
Обсуждают сегодня