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