РУҚА
24

Решение: Поиск минимальной цифры

ЕГЭ · Информатика · Задание 24 · Основы программирования
ВысокаяФИПИF5E8C8Развёрнутое решение≈ 15 минутРазбор в 5 шагов
Условие

На обработку поступает натуральное число, не превышающее $10^9$. Нужно написать программу, которая выводит на экран минимальную цифру числа, кратную 4. Если в числе нет цифр, кратных 4, требуется вывести «NO».

Напоминание: 0 делится на любое натуральное число.

Ниже приведён вариант программы на языке Python:

```python
N = int(input())
minDigit = N % 10
while N > 0:
digit = N % 10
if digit % 4 == 0:
if digit < minDigit:
minDigit = digit
N = N // 10
if minDigit == 0:
print("NO")
else:
print(minDigit)
```

Последовательно выполните следующие действия:
1. Определите, что выведет программа при вводе числа 123.
2. Приведите пример трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в программе. Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки укажите ошибочную строку и её правильный вариант. Достаточно указать ошибки и способы их исправления для языка Python. Исправление каждой ошибки должно затрагивать только строку, в которой она находится.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

5 шагов
1

При вводе 123 переменная minDigit изначально получает значение последней цифры: 3. Далее программа последовательно рассматривает цифры 3, 2 и 1. Ни одна из них не делится на 4, поэтому minDigit не изменяется.

$$minDigit = 3$$
2

После завершения цикла программа проверяет условие minDigit == 0. Оно ложно, поэтому на экран выводится число 3.

$$3 \ne 0 \Rightarrow \text{вывод } 3$$
3

Пример трёхзначного числа, для которого программа выдаёт верный ответ, — 124. Его цифры, кратные 4, — только 4, поэтому правильный ответ равен 4. Программа также выводит 4.

4

Ошибка 1: начальное значение minDigit берётся как последняя цифра числа. Если последняя цифра не кратна 4, она может ошибочно остаться ответом. Начальное значение следует заменить на 10 — число, большее любой цифры.

$$minDigit = 10$$

Ошибка 2: значение 0 ошибочно трактуется как отсутствие подходящей цифры, хотя 0 делится на 4. После инициализации minDigit значением 10 признаком отсутствия подходящей цифры должно быть значение 10.

$$minDigit == 10 \Rightarrow \text{вывод } \text{NO}$$
Ответ

1) 3. 2) Например, 124. 3) Исправления в Python: minDigit = 10; if minDigit == 10:

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Считать, что 0 не является цифрой, кратной 4.

Предложить заменить несколько строк одной новой программой.

Не исправить условие вывода NO после изменения начального значения minDigit.

Указать число 123 как пример корректной работы программы.

Закрепить приёмВ теме «Основы программирования» ещё 159 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 24 ЕГЭ, информатика

Разбор этой задачи разложен на 5 шагов: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Основы программирования»: в ней 160 задач, и у каждой есть такой же разбор. Регистрация не нужна.