"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович
Цифры числа можно извлекать по одной с помощью двух действий: целочисленного деления на 10 и нахождения остатка от деления на 10. Остаток показывает последнюю цифру, а целочисленное деление её отбрасывает. Если повторять эти действия, можно получить все цифры числа справа налево. Этот приём нужен в программах для подсчёта цифр, вычисления их суммы и проверки свойств записи числа.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Цифра числа — знак от 0 до 9, которым записывают число. Например, число 583 состоит из цифр 5, 8 и 3. При разборе числа важно не только назвать цифры, но и определить, в каких местах записи они стоят: одна и та же цифра может иметь разное значение в разных позициях.
Разряд числа — позиция цифры, определяющая её вклад в значение числа. Справа налево идут разряды единиц, десятков, сотен, тысяч и далее. Например, в числе 583 цифра 8 стоит в разряде десятков и означает 80, а цифра 5 стоит в разряде сотен и означает 500. Разряды нужны, чтобы точно указать, какую цифру требуется найти.
Целочисленное деление на 10 — операция, которая делит неотрицательное целое число на 10 и оставляет только целую часть результата. Например, 583 div 10 = 58: цифра единиц отброшена, а остальные цифры сохранились. Эта операция нужна, когда программа должна перейти от последней цифры числа к цифре слева от неё.
Остаток от деления на 10 — число, которое остаётся после целочисленного деления неотрицательного целого числа на 10. Для чисел в десятичной записи этот остаток совпадает с последней цифрой: 583 mod 10 = 3. Операция помогает получить цифру, не перебирая и не преобразуя всю запись числа.
При делении числа на 10 с остатком оно раскладывается на полные десятки и оставшуюся часть: n = 10q + r. Здесь q — целое количество десятков, а r — остаток от 0 до 9. Десятки дают слагаемое, кратное 10, поэтому именно r соответствует единицам. Например, 583 = 58 · 10 + 3, значит, остаток равен цифре единиц.
Чтобы получить цифру единиц, достаточно применить к числу операцию нахождения остатка от деления на 10. Остаток не может быть больше 9, потому что при делении на 10 неполная часть меньше делителя. Значит, он всегда будет одной цифрой. Для 746 вычисление 746 mod 10 даёт 6 — последнюю цифру записи.
Целочисленное деление на 10 убирает последнюю цифру, поскольку число десятков остаётся целой частью частного. Например, 746 div 10 = 74, а запись 74 получена удалением цифры 6 справа. После такого действия цифра десятков исходного числа оказывается на месте единиц. Поэтому остаток от деления нового числа на 10 даст именно прежнюю цифру десятков.
Для цифры заданного разряда сначала нужно отбросить все цифры справа от него, а затем взять остаток от деления на 10. Если единицы имеют номер 0, то цифра разряда k вычисляется как (n div 10ᵏ) mod 10. Например, для десятков делят на 10 нацело, а для сотен — на 100. Деление на соответствующую степень 10 убирает нужное число крайних справа цифр.
Все цифры числа можно извлекать по очереди, каждый раз работая с его оставшейся частью. Сначала остаток от деления на 10 даёт последнюю цифру, затем целочисленное деление на 10 отбрасывает её. Повторяя эту пару действий, программа движется справа налево, пока не останется цифр. Если исходное число равно 0, цикл с условием «пока число не равно нулю» не выполнится ни разу, поэтому ноль нужно вывести отдельной проверкой.
| Что требуется найти | Действие с числом n | Результат |
|---|---|---|
| Цифра единиц | n mod 10 | Остаток от деления на 10 |
| Цифра десятков | (n div 10) mod 10 | Вторая цифра справа |
| Цифра сотен | (n div 100) mod 10 | Третья цифра справа |
| Цифра разряда с номером k, если единицы имеют номер 0 | (n div 10ᵏ) mod 10 | Цифра разряда k |
Сначала определи, сколько цифр справа нужно отбросить, чтобы искомая оказалась на месте единиц. Для этого раздели число на 10, 100 или другую нужную степень 10 целочисленно. Затем возьми остаток от деления результата на 10.
Нужна последняя цифра записи, поэтому достаточно узнать остаток при делении числа на 10. Деление с остатком отделяет полные десятки от единиц. Выполним действия по порядку.
Ответ: 3.
Остаток исходного числа от деления на 10 дал бы единицы, поэтому сначала нужно убрать цифры справа от искомого разряда. Для десятков достаточно отбросить одну цифру, для сотен — две. После этого искомая цифра окажется последней, и её можно будет извлечь остатком.
Ответ: цифра десятков — 8, цифра сотен — 5.
Нужно повторять получение остатка и отбрасывание последней цифры, пока число не станет нулём. Например, для 583 программа сначала выведет 3, затем 8, затем 5. Число 0 требует особого случая: иначе условие цикла сразу окажется ложным.
Ответ: алгоритм выводит остаток от деления на 10, затем делит число на 10 нацело и повторяет действия; для исходного нуля выводит 0 отдельно.
Обычное деление используют вместо целочисленного, и вместо числа без последней цифры получают дробный результат. Так бывает, если не различать запись деления и действие, которое оставляет только целую часть. Проверь себя: при делении нацело 583 должно превратиться в 58, без дробной части. Если в ответе появилось 58,3, выбрана не та операция.
Целочисленное деление и остаток иногда путают, хотя они выполняют разные действия. Первое отбрасывает последнюю цифру, второе возвращает её. Ошибку помогает обнаружить простая проверка на числе 583: деление нацело даёт 58, а остаток — 3. Если эти результаты поменялись местами, проверь выбранную операцию.
Для цифры десятков могут взять остаток исходного числа от деления на 10. Это действие находит только единицы, потому что цифра десятков ещё не перемещена к концу записи. Сначала выполни целочисленное деление на 10, а затем найди остаток. Для 583 правильный результат десятков — 8, а не 3.
В алгоритме перебора цифр иногда забывают проверить, не равно ли исходное число нулю. Цикл «пока n больше 0» при таком вводе не запустится, и программа ничего не выведет. Проверь работу алгоритма на граничном значении 0: ожидаемый результат — одна цифра 0. Чтобы он появился, обработай этот случай отдельно.
Для работы с цифрами нужны знания о разрядах десятичной записи и делении с остатком. Разряды объясняют, какую часть числа ищут, а остаток помогает отделить единицы от десятков. При программировании приём связывает арифметические операции с циклами: одни и те же действия повторяются, пока в числе остаются цифры. На его основе можно считать количество цифр, находить их сумму и проверять свойства записи числа.
Как получить последнюю цифру целого числа?
Для неотрицательного целого числа нужно найти остаток от деления на 10. Например, 583 mod 10 = 3, значит, последняя цифра — 3.
Почему остаток от деления на 10 равен цифре единиц?
Любое неотрицательное целое число можно представить как число десятков, умноженное на 10, плюс цифра единиц. При делении на 10 десятки делятся без остатка, а цифра единиц остаётся.
Как найти цифру десятков или сотен?
Для десятков сначала раздели число на 10 нацело, а затем найди остаток от деления результата на 10. Для сотен раздели исходное число на 100 нацело и возьми остаток от деления на 10.
В каком порядке программа выделяет цифры числа?
Сначала программа получает цифру единиц — последнюю в записи числа. Затем она отбрасывает её целочисленным делением на 10 и таким же способом находит следующую цифру.
Почему в алгоритме выделения цифр нужно отдельно проверить число 0?
Если цикл выполняется, пока число не равно нулю, при начальном значении 0 его тело не запустится. Поэтому программа ничего не выведет. Отдельная проверка позволяет вывести цифру 0.
19.5. Выделение цифр из числа