v1.0.0

Python с нуля для ЕГЭ · Цифры числа: деление нацело и остаток

Урок курсаPython 35 задачБесплатно

Цифры числа: деление нацело и остаток

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

Теория

Две операции отделяют последнюю цифру

Мы уже знаем смысл остатка и целого деления. Теперь соединим их. Остаток от деления на10 даёт последнюю цифру, а целое деление на 10удаляет её.

number = 538last_digit = number % 10remaining = number // 10print(last_digit)print(remaining)
Разберём на примере
Разберём число 538
Нужно отделить последнюю цифру и сохранить оставшуюся часть.
  1. 538 % 10 даёт 8.
  2. 538 // 10 даёт 53.
  3. Исходное число не меняется само: новое значение нужно присвоить переменной.

Повторяем шаг, пока цифры не закончатся

После каждого шага число становится короче. Это знакомый признак подходящегоwhile: состояние явно приближается к нулю.

number = 538total = 0 while number > 0:    digit = number % 10    total += digit    number //= 10 print(total)

Цифры приходят справа налево: 8, затем 3, затем 5. Для суммы порядок не важен. Если порядок важен, это нужно учесть отдельно.

Проверьте себя
Каким станет number после двух итераций для исходного значения 538?
Сначала 53, затем 5.

Ноль требует отдельного взгляда

Для положительного числа цикл выполняется хотя бы один раз. Для исходного нуля условиеnumber > 0 сразу ложно. Если задача спрашивает количество цифр, у числа 0 всё равно одна цифра — значит, этот случай нужно назвать явно.

Как построить алгоритм по цифрам

Как действовать
От вопроса к циклу
  1. Уточните вход. Работаем с положительными числами, нулём или всеми целыми?
  2. Выберите накопитель. Нужны сумма, количество, максимум или новая запись?
  3. Получите цифру. Используйте остаток от деления на 10.
  4. Обновите результат. Примените условие только там, где оно нужно.
  5. Укоротите число. Иначе while никогда не приблизится к остановке.
Проверьте себя
В каком порядке цикл получает цифры числа 204?
Справа налево: 4, 0, 2.

Практика

Отделите последнюю цифру

Какую цифру вернёт выражение 704 % 10?

Подсказка
Остаток от деления на 10 совпадает с последней цифрой.
Решение

Последняя цифра числа 704 — 4, поэтому остаток равен 4.

Укоротите число

Чему равно 704 // 10?

Подсказка
Целое деление удаляет последнюю цифру.
Решение

После удаления последней цифры 4 остаётся 70.

Проследите две итерации

Переменная number равна 704. В конце каждой итерации выполняется number //= 10. Чему она равна после двух итераций?

Подсказка
Примените целое деление два раза.
Решение

После первого шага получается 70, после второго — 7.

Какую сумму накопит показанный в уроке цикл для числа 704?

Подсказка
Ноль тоже участвует как цифра, но не меняет сумму.
Решение

Цикл получает 4, 0 и 7; сумма равна 11.

Посчитайте чётные цифры

Локально измените накопитель так, чтобы он считал цифры с digit % 2 == 0. Сколько чётных цифр в числе 12048?

Подсказка
Цикл увидит цифры 8, 4, 0, 2 и 1.
Решение

Чётные цифры — 8, 4, 0 и 2, всего четыре.

Итог

Вы превратили знакомые %, //, условие и накопитель в полноценный алгоритм обработки целого числа.

Дальше тот же принцип «берём один элемент и обновляем состояние» перейдёт со цифр на строки и коллекции.

Прогресс

0 / 5
x

Вы ещё не решали задания