РУҚА
16

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

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

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

Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).

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

Пример: для входных данных 12, 15, 10, 71, 50, 11, 0 результатом является 71.

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

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

5 шагов
1

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

$$d = n \bmod 7$$
2

Последняя цифра нечётная, если остаток от деления на 7 равен 1, 3 или 5. Это можно проверить условием `n % 7 % 2 == 1`.

3

Читаем числа до появления 0. Нулевое значение не обрабатываем, так как оно является признаком окончания ввода.

4

Для подходящих чисел обновляем переменную максимума. Изначально максимум не задан, поэтому удобно использовать значение `None`.

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

Ответ

```python
maximum = None

while True:
n = int(input())
if n == 0:
break
if n % 7 % 2 == 1:
if maximum is None or n > maximum:
maximum = n

if maximum is None:
print('NO')
else:
print(maximum)
```

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

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

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

Используют деление на 10 вместо деления на 7.

Включают число 0 в обрабатываемую последовательность.

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

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

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

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

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