Наибольший, наименьший элемент (2 часть). № 16 ОГЭ
2 часть подборки заданий на определение наибольшего/наименьшего числа, удовлетворяющих заданным условиям. Количество чисел заранее неизвестно.
№CC7540
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого
в системе счисления с основанием 7 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно десятичное число – наибольший элемент последовательности, запись которого в 7-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
12 15 10 71 50 11 0 | 71 |
Программа
В список numbers будем помещать все удовлетворяющие условию числа.

Обозначим вводимое число number. Вводим первое число:

В цикле вводим и проверяем числа до тех пор, пока не введём 0:

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

Будем делить x на семь до тех пор, пока не получим остаток меньше семи.

Если найденный остаток нечётный, добавим число в список:

Вводим следующее число:

После ввода и проверки всех чисел (то есть выхода из цикла после ввода 0), выводим результат. Если список с подходящими числами непустой (его длина больше нуля), выводим наибольшее число из него. Если же элементов не добавили, выводим ‘NO’.

Вариант решения полностью:

В решении следующего задания изменится только проверка условия, которому должны соответствовать числа.
№D9A7E1
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого
в системе счисления с основанием 9 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно десятичное число – наибольший элемент последовательности, запись которого в 9-ричной системе счисления оканчивается цифрой 1, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
10 9 11 91 28 0 | 91 |
Решение
Изменения в программу №CC7540:
while x > 9: x %= 9
if x == 1: numbers.append(number)
Отличие следующего задания в том, что нужно найти не наибольший, а наименьший элемент.
№6D7939
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наименьший элемент, запись которого
в системе счисления с основанием 9 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно десятичное число – наименьший элемент последовательности, запись которого в 9-ричной системе счисления оканчивается цифрой 1, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
10 9 11 91 28 0 | 10 |
Решение
Изменения в программу №CC7540:
while x > 9: x %= 9
if x == 1: numbers.append(number)
if len(numbers) > 0: print(min(numbers))
else: print(‘NO’)
Задания из Банка заданий ОГЭ