Часто в задачах требуется не просто оперировать числом как целым, а разложить его на отдельные цифры — как разобрать механизм на детали. Рассмотрим простой, но эффективный подход. Для этого вспомним, что мы можем подсчитать целую и остаточную части при делении на 10 (или другое число, смотря в какой системе счисления работаем). Допустим, имеем задачу: "Дано 32-битное знаковое целое число x. Верните x с перевернутыми цифрами. Если переворачивание x приводит к выходу значения за пределы диапазона 32-битных знаковых целых чисел [-2**31, 2**31 - 1], верните 0" Ключевая часть алгоритма к решению может выглядеть так - итеративно, пока целая часть от деления на 10 не равна 0 берем дробную и добавляем к результату, умноженному на 10: Чтобы не мучиться с остатком, посчитаем знак и будем работать с положительным x. Напомню, что остаток в Python имеет знак делителя и работает правило: a % b = a - b * floor(a / b), floor(a / b) — округление вниз до ближайшего целого. 7%3 = 7 - 3*2=1 7%-3 = 7 + 3(-