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