16

Решение: Максимальное число в последовательности

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

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

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

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

Пример входных данных:
5
10
9
11
91
28

Пример выходных данных:
91

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

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

4 шага
1

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

$$x \bmod 9 = 1$$
2

Последовательно считываем все $N$ чисел. Для каждого подходящего числа сравниваем его с текущим максимумом и сохраняем большее значение.

$$m = \max(m, x)$$
3

Начальное значение максимума удобно заменить на `None`. Если после обработки всех чисел оно осталось равным `None`, подходящих элементов нет, поэтому выводим «NO».

Один из вариантов программы на Python:

$$n = int(input())\nmaximum = None\nfor _ in range(n):\n x = int(input())\n if x % 9 == 1:\n if maximum is None or x > maximum:\n maximum = x\nprint(maximum if maximum is not None else 'NO')$$
Ответ

Проверять условие x % 9 == 1 и вывести максимальное подходящее число либо NO.

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

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

Переводят число в строку или в другую систему счисления, хотя достаточно найти остаток от деления на 9.

Проверяют делимость на 9, то есть условие x % 9 == 0, вместо остатка 1.

Выводят 0 или другое начальное значение, если подходящих чисел нет, вместо «NO».

Забывают обработать первое подходящее число при инициализации максимума.

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

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

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

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