Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 4. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход в первой строке натуральное число – количество чисел N (3 ≤ N ≤ 10000), затем N натуральных чисел,
не превышающих 30 000, каждое в отдельной строке.
Программа должна вывести одно число – среднее арифметическое десятичных чисел (элементов последовательности), запись которых
в 7-ричной системе счисления оканчивается цифрой 4, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
5 11 25 30 14 54 | 18 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно обработать чисел, выбрать из них те, которые удовлетворяют условию, и вычислить их среднее арифметическое.
Шаг 1: Анализ условия.
Число в системе счисления с основанием оканчивается на цифру , если остаток от деления этого числа на равен . Это основное свойство позиционных систем счисления: последняя цифра числа в системе с основанием — это остаток от деления числа на . Таким образом, наше условие проверки: .
Шаг 2: Алгоритм решения.
1. Сначала считываем количество чисел .
2. Создаём две переменные-счётчика: sum_val для накопления суммы подходящих чисел и count для подсчёта их количества. Изначально обе равны .
3. В цикле от до считываем очередное число .
4. Проверяем условие: если , то прибавляем к sum_val и увеличиваем count на .
5. После завершения цикла проверяем значение count. Если оно равно , выводим «NO». В противном случае вычисляем среднее арифметическое как и выводим результат.
Шаг 3: Реализация на языке программирования (Python).
n = int(input())
sum_val = 0
count = 0
for i in range(n):
x = int(input())
if x % 7 == 4:
sum_val += x
count += 1
if count == 0:
print("NO")
else:
print(sum_val / count)
Шаг 4: Проверка на примере.
Входные данные: .
1. (подходит, сумма = , кол-во = )
2. (подходит, сумма = , кол-во = )
3. (не подходит)
4. (не подходит)
5. (не подходит)
Среднее арифметическое: .
Ответ: 18
Источник: ФИПИ