Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных десятичных чисел определяет сумму элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 6. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход в первой строке натуральное число – количество чисел N (3 ≤ N ≤ 10000), затем N натуральных чисел,
не превышающих 30 000, каждое в отдельной строке.
Программа должна вывести одно число – сумму десятичных чисел (элементов последовательности), запись которых в 7-ричной системе счисления оканчивается цифрой 6, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
5 20 13 9 28 12 | 33 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо проанализировать каждое число из последовательности и проверить условие, связанное с его записью в системе счисления с основанием 7.
1. Как проверить последнюю цифру в системе счисления?
В любой позиционной системе счисления с основанием последняя цифра числа — это остаток от деления этого числа на . В нашем случае основание системы равно . Значит, чтобы узнать последнюю цифру числа в 7-ричной записи, нужно найти остаток от деления этого числа на . Условие «оканчивается на 6» на языке программирования запишется как: x % 7 == 6.
2. Алгоритм действий:
— Сначала считываем количество чисел .
— Создаём переменную для хранения суммы (например, s) и инициализируем её нулём. Также нам понадобится флаг или счётчик, чтобы понять, встретилось ли нам хотя бы одно подходящее число.
— В цикле от до считываем очередное число .
— Проверяем условие: если , то прибавляем к сумме s и отмечаем, что подходящее число найдено.
— После завершения цикла проверяем: если сумма осталась равной нулю (и мы уверены, что это не результат сложения подходящих чисел, так как числа натуральные), выводим результат. Если подходящих чисел не было — выводим «NO».
3. Пример кода на языке Python:
n = int(input())
s = 0
found = False
for i in range(n):
x = int(input())
if x % 7 == 6:
s += x
found = True
if found:
print(s)
else:
print("NO")
4. Разбор примера из условия:
Дано . Числа: .
— (подходит, ). Сумма .
— (подходит, ). Сумма .
— (не подходит).
— (не подходит).
— (не подходит).
Итоговая сумма: .
Ответ: 33
Источник: ФИПИ