Создавать и выполнять программы на универсальном языке программирования · 170 заданий
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с осн…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого в системе счисления с осн…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием 5 четырёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с ос…
Программирование
- Задание №16№16
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна…
Программирование
- Задание №16№16
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе сч…
Программирование
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого
в системе счисления с основанием 9 оканчивается цифрой 1. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно десятичное число – наибольший элемент последовательности, запись которого в 9-ричной системе счисления оканчивается цифрой 1, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
|---|---|
10 9 11 91 28 0 | 91 |
Решение
Решение.
Для решения этой задачи нам необходимо последовательно считывать числа до тех пор, пока не встретится 0. Для каждого числа мы будем проверять условие и искать среди подходящих чисел максимальное.
Шаг 1: Разбор условия.
Число в системе счисления с основанием 9 оканчивается на цифру 1 тогда и только тогда, когда остаток от деления этого числа на 9 равен 1. Это математическое правило работает для любой позиционной системы счисления: последняя цифра числа в системе с основанием N — это остаток от деления этого числа на N.
Следовательно, наше условие: x(mod9)=1.
Шаг 2: Алгоритм поиска максимума.
1. Создадим переменную max_val для хранения максимального числа. Изначально присвоим ей значение, которое меньше любого возможного натурального числа, например, −1. Это поможет нам в конце понять, нашли ли мы хотя бы одно подходящее число.
2. В цикле считываем число x.
3. Если x=0, прекращаем ввод.
4. Если x(mod9)=1, то сравниваем его с текущим max_val. Если x>max_val, то обновляем значение max_val = x.
5. После окончания цикла проверяем: если max_val остался равен −1, выводим «NO», иначе выводим значение max_val.
Шаг 3: Пример кода на языке Python.
max_val = -1
while True:
x = int(input())
if x == 0:
break
if x % 9 == 1:
if x > max_val:
max_val = x
if max_val == -1:
print("NO")
else:
print(max_val)
Шаг 4: Проверка на примере.
Ввод: 10,9,11,91,28,0.
- 10(mod9)=1. Подходит. max_val = 10.
- 9(mod9)=0. Не подходит.
- 11(mod9)=2. Не подходит.
- 91(mod9)=1 (так как 91=9⋅10+1). Подходит. 91>10, значит max_val = 91.
- 28(mod9)=1 (так как 28=9⋅3+1). Подходит. 28<91, максимум не меняется.
- 0 — конец ввода. Результат: 91.
Ответ: 91
Источник: ФИПИ