16

Решение: Максимум с нечётной цифрой

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

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

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

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

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

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

5 шагов
1

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

$$d = x \bmod 7$$
2

Нечётные цифры в семеричной системе счисления — это 1, 3 и 5. Поэтому число подходит, если остаток от его деления на 7 принадлежит множеству {1, 3, 5}.

$$x \bmod 7 \in \{1,3,5\}$$
3

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

4

После обработки всех чисел выводим найденный максимум или NO, если подходящих чисел не было.

Пример программы:

$$data = list(map(int, open(0).read().split())) N = data[0] maximum = None for x in data[1:N + 1]: if x % 7 in (1, 3, 5): if maximum is None or x > maximum: maximum = x print(maximum if maximum is not None else 'NO')$$
Ответ

Программа должна проверять остаток от деления каждого числа на 7, находить максимум среди чисел с остатком 1, 3 или 5 и выводить NO при отсутствии таких чисел.

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

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

Проверяют нечётность самого числа, а не последней цифры его семеричной записи.

Забывают, что остаток 0, 2, 4 или 6 соответствует чётной последней цифре.

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

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

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

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

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

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