Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 4, или сообщает, что таких чисел нет (выводит NO). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0
признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести среднее арифметическое чисел, кратных 4 или вывести «NO», если таких чисел нет.
Пример работы программы:
Входные данные | Выходные данные |
8 120 64 16 0 | 52.0 |
111 1 0 | NO |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо организовать цикл чтения чисел до тех пор, пока не будет введён ноль. В процессе чтения мы будем проверять каждое число на кратность 4 и накапливать сумму подходящих чисел, а также их количество.
Шаг 1: Инициализация переменных.
Нам понадобятся две переменные-счётчика:
1. — для хранения суммы чисел, кратных 4.
2. — для подсчёта количества таких чисел.
Шаг 2: Организация ввода и цикла.
Так как количество чисел заранее неизвестно, используем цикл while. Будем считывать число . Если , проверяем условие кратности: . Если условие выполняется, прибавляем к и увеличиваем на 1.
Шаг 3: Расчёт среднего арифметического.
После завершения цикла (когда введён 0), проверяем значение .
— Если , то вычисляем среднее арифметическое по формуле: .
— Если , это значит, что подходящих чисел не было, и нужно вывести "NO".
Пример кода на языке Python:
sum_val = 0
count = 0
x = int(input())
while x != 0:
if x % 4 == 0:
sum_val += x
count += 1
x = int(input())
if count > 0:
print(float(sum_val / count))
else:
print("NO")
Разбор примера №1:
Ввод: 8, 120, 64, 16, 0.
Все числа делятся на 4.
Сумма: .
Количество: .
Среднее: .
Ответ: Программа считывает последовательность, фильтрует числа кратные 4 и выводит их среднее арифметическое или NO.
Источник: ФИПИ