Шешімі: Максимальное число в семеричной системе
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с основанием 7 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).
Программа должна вывести одно десятичное число — наибольший элемент последовательности, запись которого в 7-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Пример: для входных данных 12, 15, 10, 71, 50, 11, 0 результатом является 71.
Шешім по шагам
5 қадамПоследняя цифра записи числа в семеричной системе счисления определяется остатком от деления этого числа на 7.
$$d = n \bmod 7$$Последняя цифра нечётная, если остаток от деления на 7 равен 1, 3 или 5. Это можно проверить условием `n % 7 % 2 == 1`.
Читаем числа до появления 0. Нулевое значение не обрабатываем, так как оно является признаком окончания ввода.
Для подходящих чисел обновляем переменную максимума. Изначально максимум не задан, поэтому удобно использовать значение `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`.