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