Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных десятичных чисел определяет сумму элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 3. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно число – сумму десятичных чисел (элементов последовательности), запись которых в 7-ричной системе счисления оканчивается цифрой 3, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
33 63 17 24 53 0 | 41 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно считывать числа до тех пор, пока не встретится 0. Для каждого числа нужно проверить условие: оканчивается ли его запись в системе счисления с основанием 7 на цифру 3.
1. Как проверить последнюю цифру в системе счисления?
В любой позиционной системе счисления с основанием , последняя цифра числа — это остаток от деления этого числа на . В нашем случае основание системы равно 7. Значит, чтобы узнать последнюю цифру 7-ричной записи десятичного числа , нужно вычислить . Если этот остаток равен 3, то число нам подходит.
2. Алгоритм действий:
— Создадим переменную sum_elements для накопления суммы и установим её в 0.
— Создадим логическую переменную или счетчик found, чтобы отметить, встретилось ли нам хотя бы одно подходящее число (изначально False).
— В цикле считываем числа. Если считанное число равно 0, прерываем цикл.
— Для каждого числа проверяем: если , то прибавляем к sum_elements и меняем found на True.
— После окончания цикла проверяем значение found. Если оно True, выводим накопленную сумму. Если False — выводим «NO».
3. Пример вычислений:
Разберем числа из примера:
— (не подходит, так как )
— (не подходит)
— (подходит, )
— (подходит, )
— (не подходит)
Сумма подходящих чисел: .
4. Программная реализация (Python):
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(s)
else:
print("NO")
Ответ: 41
Источник: ФИПИ