Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого
в системе счисления с основанием 7 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно десятичное число – наибольший элемент последовательности, запись которого в 7-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
12 15 10 71 50 11 0 | 71 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Разберём задачу по шагам, чтобы понять логику работы алгоритма.
1. Анализ условия. Нам нужно найти максимальное число среди тех, чья запись в системе счисления с основанием оканчивается на нечётную цифру. Числа вводятся до тех пор, пока не встретится .
2. Как определить последнюю цифру в 7-ричной системе? Последняя цифра числа в любой системе счисления — это остаток от деления этого числа на основание системы. В нашем случае последняя цифра числа в 7-ричной системе равна .
3. Условие нечётности. Цифра является нечётной, если она не делится на без остатка. То есть нам нужно проверить условие: .
4. Поиск максимума. Для поиска наибольшего значения заведём переменную max_val. Изначально присвоим ей значение, которое меньше любого возможного натурального числа, например, . Если в процессе работы программы мы найдём число, подходящее под условие и большее, чем текущий max_val, мы обновим значение переменной.
5. Реализация на языке программирования (Python):
max_val = -1
x = int(input())
while x != 0:
last_digit_base7 = x % 7
if last_digit_base7 % 2 != 0:
if x > max_val:
max_val = x
x = int(input())
if max_val == -1:
print("NO")
else:
print(max_val)
6. Проверка на примере.
- Число : . — нечётное. max_val становится .
- Число : . — нечётное. , max_val становится .
- Число : . — нечётное. , max_val остаётся .
- Число : . — нечётное. , max_val становится .
- Число : . — нечётное. , max_val остаётся .
- Число : . — чётное, условие не выполняется.
- Число : конец ввода. Результат: .
Ответ: 71
Источник: ФИПИ