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