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