Алгоритм: Операции деления нацело и взятия остатка от деления для получения его цифр числа
Primary tabs
Forums:
О чем
В учебных задачах по программированию (в т.ч. информатике в школе) любят накладывать ограничения вроде "Используя операции деления нацело и взятия остатка от деления...[сделайте то-то и то-то]" (например) обычно речь далее идёт о получении цифр числа с помощью этих операций и дальнейшей работе с ними.
Может возникнуть вопрос: как использовать эти операции для получения цифр числа? Об этом и расскажет данная заметка.
Как это работает
Всё достаточно просто, предположим, что (введём обозначения):
- операция деления нацело обозначается как //, тогда:
7 // 3 = 2
(действительно, 3 уменьшается в семи целиком только 2 раза)
- операция же получения целочисленного остатка, как %, тогда:
7 % 3 = 1
(действительно, остатком от деления 7 на 3 будет 1)
(в вашем языке программирования эти операции могут обозначаться иначе)
А теперь рассмотрим пример получения цифр, пусть у нас есть число 1207, вот алгорим:
- Получаем остаток от деления его на 10:
1207 % 10 = 7
-- вот мы с вами и извлекли первую цифру, теперь надо избавится от неё, получив новое число 120 (чтобы из него можно было бы с помощью той же операции получить го последнюю цифру), как это сделать? (см. ниже)
- Всё опять просто: чтобы получить из 1207 число 120, надо просто разделить 1207 нацело на 10, у нас есть эта операция:
1207 // 10 = 120
(в остатке как раз будет 7, но в целочисленном делении остаток нас не интересует)
- Повторяем первые два пункта до тех пор, пока целочисленное деление не вернёт ноль, т.е. до ситуации (если рассматривать число 1207, как и выше):
1 // 10 = 0
-- это можно рассматривать как условие выхода из цикла (если такая структура как "цикл" есть в вашем языке программирования, но обычно она есть).
- Log in to post comments
- 7958 reads