Целочисленная арифметика: деление с остатком
💻 Информатика · 8 класс
Деление с остатком в программировании
При работе с целыми числами в программировании часто нужно разделить одно число на другое так, чтобы результат тоже остался целым. Для этого используют две специальные операции: целое деление (в языке Паскаль — div) и остаток от деления (mod). Эти операции — основа многих алгоритмов: разбора цифр числа, проверки делимости, перевода между системами счисления.
Что делают операции
Операция div возвращает целую часть частного, отбрасывая дробную часть. Операция mod возвращает остаток, который получается после деления. Разберём на примере деления семнадцати на пять:
17 div 5 = 3 (целая часть частного)
17 mod 5 = 2 (остаток)
Проверка: 3 * 5 + 2 = 17
Главное соотношение, которое всегда выполняется для неотрицательных чисел:
a = (a div b) * b + (a mod b)
Таблица примеров
| Выражение | Результат | Пояснение |
|---|---|---|
20 div 6 | 3 | целая часть частного |
20 mod 6 | 2 | остаток |
10 div 10 | 1 | делится нацело |
10 mod 10 | 0 | остаток равен нулю |
4 div 9 | 0 | делимое меньше делителя |
Разбор числа на цифры
С помощью этих операций удобно выделять цифры числа. Остаток от деления на десять даёт последнюю цифру, а целое деление на десять «отрезает» её. Найдём цифры трёхзначного числа 347:
347 mod 10 = 7 (единицы)
347 div 10 = 34
34 mod 10 = 4 (десятки)
34 div 10 = 3 (сотни)
Проверка делимости
Число a делится на число b без остатка тогда и только тогда, когда a mod b = 0. Так проверяют чётность: если a mod 2 = 0, число чётное, иначе нечётное. Аналогично можно проверить, делится ли число на три, на пять или на любое другое.
Сумма цифр числа
Операции div и mod позволяют не только выделить цифры, но и сложить их. Идея в том, чтобы в цикле отделять последнюю цифру остатком и накапливать сумму, а само число уменьшать целым делением. Схема для трёхзначного числа выглядит так:
сумма = 0
сумма = сумма + (n mod 10); n = n div 10
сумма = сумма + (n mod 10); n = n div 10
сумма = сумма + (n mod 10); n = n div 10
После трёх шагов число n станет равно нулю, а в переменной «сумма» окажется сумма всех его цифр. Этот приём — основа многих задач на обработку чисел.
Поведение при отрицательных числах
В школьных задачах обычно работают с неотрицательными целыми числами. Стоит помнить, что результат целого деления — это всегда целое число, дробная часть не округляется, а просто отбрасывается. Поэтому 7 div 2 равно трём, а не округлённой четвёрке.
Частая ошибка. Путаютdivиmod: первая даёт частное, вторая — остаток. Также нельзя делить на ноль — обе операции в этом случае вызывают ошибку выполнения программы. И помните: целое деление отбрасывает дробную часть, а не округляет её.
Кратко о главном
divдаёт целую часть частного,mod— остаток.- Всегда верно
a = (a div b) * b + (a mod b). - Остаток от деления на десять выделяет последнюю цифру.
- Условие
a mod b = 0означает деление нацело.