Алгоритм: Операции деления нацело и взятия остатка от деления для получения его цифр числа

О чем

В учебных задачах по программированию (в т.ч. информатике в школе) любят накладывать ограничения вроде "Используя операции деления нацело и взятия остатка от деления...[сделайте то-то и то-то]" (например) обычно речь далее идёт о получении цифр числа с помощью этих операций и дальнейшей работе с ними.

Может возникнуть вопрос: как использовать эти операции для получения цифр числа? Об этом и расскажет данная заметка.

Как это работает

Всё достаточно просто, предположим, что (введём обозначения):

  • операция деления нацело обозначается как //, тогда:
    7 // 3 = 2

    (действительно, 3 уменьшается в семи целиком только 2 раза)

  • операция же получения целочисленного остатка, как %, тогда:
    7 % 3 = 1

    (действительно, остатком от деления 7 на 3 будет 1)

(в вашем языке программирования эти операции могут обозначаться иначе)

А теперь рассмотрим пример получения цифр, пусть у нас есть число 1207, вот алгорим:

  1. Получаем остаток от деления его на 10:
    1207 % 10 = 7

    -- вот мы с вами и извлекли первую цифру, теперь надо избавится от неё, получив новое число 120 (чтобы из него можно было бы с помощью той же операции получить го последнюю цифру), как это сделать? (см. ниже)

  2. Всё опять просто: чтобы получить из 1207 число 120, надо просто разделить 1207 нацело на 10, у нас есть эта операция:
    1207 // 10 = 120

    (в остатке как раз будет 7, но в целочисленном делении остаток нас не интересует)

  3. Повторяем первые два пункта до тех пор, пока целочисленное деление не вернёт ноль, т.е. до ситуации (если рассматривать число 1207, как и выше):
    1 // 10 = 0

    -- это можно рассматривать как условие выхода из цикла (если такая структура как "цикл" есть в вашем языке программирования, но обычно она есть).