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