Задание №14. Короткий конспект
Разряды, остатки, допустимые цифры и два разных критерия выбора параметра.
Сначала определяется искомая величина: количество цифр, сумма их значений, неизвестная цифра, частное или целый параметр. Одинаковая программа извлечения цифр может использоваться для разных вопросов, но действие с каждой цифрой зависит от условия.
Запись и извлечение цифр
b — основание; a_i — цифра разряда с номером i, считая справа с нуля.
n=\sum_{i=0}^{k}a_ib^i,\qquad 0\le a_i<b.
| Действие | Python |
|---|---|
| Младшая цифра | digit = n % b |
| Удаление младшей цифры | n //= b |
| Приписывание цифры справа | n = n * b + digit |
| Степень | b ** k |
Деление повторяется, пока число положительно. Остатки получаются справа налево; для количества и суммы порядок не важен. Само число 0 имеет одну нулевую цифру и обрабатывается отдельно.
Порядок решения
- Подсчёт цифр. Вычисляется целое выражение, затем проверяется каждый остаток. Для количества подходящих цифр прибавляется единица, для суммы — значение цифры.
- Неизвестная цифра. Перебирается x=0,\ldots,b-1; ведущий нуль исключается. Одинаковая буква везде заменяется одинаково. Проверяется делимость, выбирается требуемый минимум или максимум, затем вычисляется величина ответа.
- Целое вычитаемое. Перебирается весь заданный диапазон. «Ровно столько нулей» означает равенство; «максимальное число нулей» — поиск рекорда. Если при равенстве рекорда нужен наибольший параметр, сохраняется больший из них.
При аналитическом решении полезен заём: для m>r\ge0 разность b^m-b^r содержит m-r цифр b-1 и r нулей справа. Дополнительные слагаемые учитываются после этого.
Возможные ловушки
- В EGE-14-0001 ↗ чётные значения включают нуль и значения больше девяти. Проверка
digit % 2 == 0сохраняет их все; список десятичных цифр неполон. - В EGE-14-0037 ↗ нули справа и внутри учитываются. Ведущие нули не добавляются: иначе количество зависит от оформления.
- В EGE-14-0004 ↗ найдена цифра 27, но ответ — частное 3319197720. Подстановка цифры и нулевой остаток проверяют выбор, а не заменяют последний расчёт.