РУҚА
16

Решение: Минимальное число в девятеричной системе

ОГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИ2130E9Развёрнутое решение≈ 10 минутРазбор в 4 шага
Условие

Напишите программу, которая в последовательности натуральных десятичных чисел определяет наименьший элемент, запись которого в системе счисления с основанием 9 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO».

Программа получает на вход в первой строке натуральное число $N$ ($3 \leq N \leq 10\,000$), затем $N$ натуральных чисел, не превышающих 30 000, каждое в отдельной строке.

Программа должна вывести одно десятичное число — наименьший элемент последовательности, запись которого в 9-ричной системе счисления оканчивается цифрой 1, или «NO», если среди входных данных нет подходящих элементов.

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

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

4 шага
1

Последняя цифра записи натурального числа в системе счисления с основанием 9 определяется остатком от деления этого числа на 9. Поэтому подходящими являются числа, для которых остаток равен 1.

$$x \bmod 9 = 1$$
2

Перебираем все $N$ чисел. Если число подходит, сохраняем его, если оно меньше текущего найденного минимума.

3

Для обозначения отсутствия найденного числа удобно использовать значение None. После обработки всех чисел выводим минимум либо строку NO.

Один из корректных вариантов программы:

$$n = int(input())\nbest = None\nfor _ in range(n):\n x = int(input())\n if x % 9 == 1 and (best is None or x < best):\n best = x\nif best is None:\n print('NO')\nelse:\n print(best)$$
Ответ

n = int(input())
best = None
for _ in range(n):
x = int(input())
if x % 9 == 1 and (best is None or x < best):
best = x
if best is None:
print('NO')
else:
print(best)

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

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

Проверяют делимость числа на 9 вместо проверки остатка 1.

Выводят первое найденное подходящее число, не сравнивая его с остальными.

Инициализируют минимум нулём, хотя все входные числа натуральные и ноль не должен считаться подходящим результатом.

Забывают вывести NO, если подходящих чисел нет.

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

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

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

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