На Горох
Информатика, 10 класс

§ 28. Операции с целыми числами

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 28. Операции с целыми числами

Кратко о теме

Целые числа складывают, вычитают, умножают, возводят в степень, а в Python также делят нацело и находят остаток. Операторы // и % помогают распределять предметы по равным группам, выделять цифры числа и проверять делимость. Частное и остаток не независимы: вместе они позволяют восстановить делимое. Особенно внимательно нужно работать с отрицательными числами и учитывать порядок выполнения операций.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Целочисленное деление обозначают в Python оператором //; оно даёт целую часть частного с округлением вниз. Например, 17 // 5 равно 3, потому что точное частное 3,4 округляется к меньшему целому. Оператор нужен, когда требуется узнать, сколько полных групп помещается в числе предметов.

Остаток от деления обозначают оператором %. Он связан с частным равенством a = b · (a // b) + (a % b), поэтому по частному и остатку можно восстановить исходное число. Остаток помогает выделять цифры числа и проверять делимость.

Деление с остатком — представление целого числа в виде a = bq + r, где a — делимое, b — делитель, q — частное, а r — остаток. Частное показывает число полных частей делимого, а остаток — то, что не удалось распределить поровну. При положительном b остаток удовлетворяет условиям 0 ≤ r < b.

Как это устроено

Сложение, вычитание и умножение целых чисел выполняются по знакомым арифметическим правилам, а результат снова будет целым. Это следует из того, что объединение целых чисел при этих действиях не выводит за пределы множества целых чисел. Например, сумма двух целых чисел может быть отрицательной, положительной или нулём, но не дробью.

Оператор // нужен, когда интересует число полных частей, а не точное дробное частное. В Python он округляет результат вниз, то есть к ближайшему меньшему целому; поэтому для 17 // 5 получается 3, а для −17 // 5 — −4. Это не то же самое, что отбросить дробную часть: при усечении к нулю из −3,4 получилось бы −3.

Операторы // и % работают как пара: первый даёт q, второй — r, а равенство a = b · q + r связывает их с делимым. Если b положительно, остаток находится от нуля включительно до b, не включая b; при делении на 5 возможны остатки 0, 1, 2, 3 и 4. Для отрицательного делимого остаток в Python всё равно может быть положительным, как в случае −17 % 5 = 3.

При вычислении выражений результат зависит не только от чисел, но и от порядка действий. Сначала выполняются действия более высокого приоритета: например, умножение, деление, целочисленное деление и остаток; затем сложение и вычитание. Скобки позволяют задать нужный порядок явно, поэтому 2 + 3 * 4 равно 14, а (2 + 3) * 4 равно 20.

Целочисленное деление удобно для подсчёта полных групп: если 17 предметов распределить по 5, получится 3 полные группы. Остаток показывает, сколько предметов останется, и тем самым помогает проверить результат распределения. В программах эти операторы также используют для получения цифр числа и проверки делимости, не переводя число в текст.

Основные операции с целыми числами

ОперацияОбозначение в PythonЧто вычисляетсяПример
Сложение+Сумма двух чисел7 + 3 = 10
Вычитание-Разность двух чисел7 - 3 = 4
Умножение*Произведение чисел7 * 3 = 21
Целочисленное деление//Частное, округлённое вниз17 // 5 = 3
Остаток от деления%Остаток после деления17 % 5 = 2
Возведение в степень**Степень числа3 ** 2 = 9

Сначала определите, какой результат требуется: точное частное, целое частное или остаток. Затем выберите соответствующий оператор и проверьте вычисление по смыслу задачи. Для // и % дополнительной проверкой служит равенство делимого частному, умноженному на делитель, плюс остаток.

Разбор задач

Задача 1. Вычислите значения выражений 17 // 5 и 17 % 5. Нужно найти число полных пятёрок в 17 и то, что останется после их выделения. Проверим результат равенством деления с остатком.

  1. Наибольшее число пятёрок, которое помещается в 17, равно 3, потому что 5 · 3 = 15, а 5 · 4 = 20 больше 17.
  2. Остаток равен 17 − 15 = 2.
  3. Проверяем: 17 = 5 · 3 + 2.

Ответ: 17 // 5 = 3, 17 % 5 = 2.

Задача 2. Вычислите −17 // 5 и −17 % 5. Здесь нельзя просто отбросить дробную часть частного: правило Python требует округления вниз. После выбора частного найдём остаток из равенства a = bq + r.

  1. Точное частное −17 / 5 равно −3,4, поэтому при округлении вниз получаем −17 // 5 = −4.
  2. Подставляем частное: −17 = 5 · (−4) + r.
  3. Так как 5 · (−4) = −20, остаток r равен 3; проверка даёт −20 + 3 = −17.

Ответ: −17 // 5 = −4, −17 % 5 = 3.

Задача 3. Дано неотрицательное целое число n. Определите, сколько в нём десятков и какова цифра единиц. Деление на 10 отделяет полные десятки, а остаток сохраняет часть числа, меньшую 10. Например, для n = 247 результат можно проверить обратным действием.

  1. Количество полных десятков вычисляем как n // 10. При n = 247 это 247 // 10 = 24.
  2. Цифру единиц находим по формуле n % 10. Для 247 получаем 247 % 10 = 7.
  3. Проверяем разложение: 247 = 10 · 24 + 7.

Ответ: десятков — n // 10, цифра единиц — n % 10; для 247 это 24 десятка и цифра 7.

Типичные ошибки

Ошибка — считать, что // просто отбрасывает дробную часть. Так думают, потому что для положительного числа такой способ часто даёт тот же результат; при отрицательном частном он расходится с правилом округления вниз. Проверяйте знак и используйте связь a = b · (a // b) + (a % b).

Ошибка — полагать, что остаток всегда положителен при любых знаках делимого и делителя. Его знак связан с правилами целочисленного деления, а потому нельзя механически переносить правила случая с положительным делителем на все случаи. Подставьте частное и остаток в равенство деления с остатком и проверьте результат.

Ошибка — путать / и //. Причина обычно в похожих названиях: / даёт обычное частное, а // — целое частное с округлением вниз. Чтобы проверить выбор, оцените, должен ли ответ быть дробным; например, 17 / 5 равно 3,4, а 17 // 5 равно 3.

Ошибка — выполнять действия слева направо, не учитывая приоритет, или забывать скобки. Такой подход меняет смысл выражения, например, умножение выполняется раньше сложения. Расставьте порядок действий, а если нужно изменить его — заключите требуемую часть выражения в скобки.

Связь с другими темами

Для работы с целыми числами нужно знать правила арифметических действий и порядок выполнения операций: на них основаны вычисления с // и %. В программировании эти операторы помогают разбирать число на цифры, проверять чётность и делимость. Например, остаток n % 2 показывает чётность, а повторное целочисленное деление на 10 позволяет переходить к следующим разрядам. Те же приёмы встречаются в циклах и алгоритмах обработки чисел.

Что запомнить

  • Операция / выполняет обычное деление, а // — целочисленное с округлением вниз.
  • Остаток обозначается оператором %.
  • Частное и остаток связаны равенством a = b · (a // b) + (a % b).
  • Для положительного делителя остаток неотрицателен и меньше делителя.
  • При отрицательных числах целочисленное деление требует особого внимания.
  • Порядок вычислений определяется приоритетом операций и скобками.

Частые вопросы по теме

Чем операция // отличается от операции /?

Оператор / выполняет обычное деление и может дать дробный результат: например, 17 / 5 равно 3,4. Оператор // возвращает целое частное с округлением вниз: 17 // 5 равно 3.

Почему при делении отрицательного числа результат // может быть не таким, как при отбрасывании дробной части?

В Python результат // округляется вниз, то есть в сторону меньших чисел, а не к нулю. Поэтому −17 // 5 равно −4: это меньше, чем точное частное −3,4.

Может ли остаток от деления быть равен делителю?

Нет, если делитель положительный: остаток всегда неотрицателен и меньше делителя. Например, при делении на 5 остатком могут быть 0, 1, 2, 3 или 4.

Как с помощью // и % получить последнюю цифру числа?

Для неотрицательного числа последняя цифра равна остатку от деления на 10: n % 10. Например, 247 % 10 равно 7.

Как проверить с помощью остатка, делится ли число на другое без остатка?

Нужно найти остаток от деления первого числа на второе. Если n % d равно 0, то n делится на d без остатка.

Спросить по теме параграфа

§ 28. Операции с целыми числами

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.