16. Программирование: #294615
Напишите программу, которая в последовательности натуральных десятичных чисел определяет сумму элементов, запись которых в системе счисления с основанием $7$ оканчивается цифрой $3$. Если среди входных данных таких элементов нет, программа должна вывести «$NO$».
Программа получает на вход натуральные десятичные числа, не превышающие $30\ 000$, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом $0$ ($0$ – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно число – сумму десятичных чисел (элементов последовательности), запись которых в 7-ричной системе счисления оканчивается цифрой $3$, или «$NO$», если среди входных данных таких элементов нет.
Пример работы программы
| Входные данные | Выходные данные |
|---|---|
| 33 63 17 24 53 0 | 41 |
Если запись числа в системе счисления с основанием $7$ оканчивается цифрой $3$, то при делении этого числа на $7$ остаток должен быть равен $3$. Например:
$17 = 2 \cdot 7 + 3$
$24 = 3 \cdot 7 + 3$.
Значит, для каждого введённого числа достаточно проверить условие $x \%\ 7 == 3$. Если условие выполняется, прибавим число к сумме и увеличим счётчик на $1$. Ввод чисел продолжается до тех пор, пока не встретится число $0$. После обработки всех чисел, если счётчик равен $0$, выведем $NO$, иначе выведем сумму подходящих чисел.
s = 0
count = 0
x = int(input())
while x != 0:
if x % 7 == 3:
s += x
count += 1
x = int(input())
if count == 0:
print("NO")
else:
print(s)
Для приведённого примера условию соответствуют числа $17$ и $24$. Их сумма: $17+24=41$.
Поэтому программа выведет: $41$.