Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое трёхзначных чисел или сообщает, что таких чисел нет (выводит NO). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0
признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 20. Введённые числа не превышают 1500.
Программа должна вывести среднее арифметическое трёхзначных чисел или вывести «NO», если таких чисел нет.
Пример работы программы:
Входные данные | Выходные данные |
10 120 125 0 | 122.5 |
11 1 0 | NO |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо организовать ввод чисел в цикле до тех пор, пока не будет введён ноль. В процессе ввода мы будем отбирать только трёхзначные числа и накапливать их сумму и количество.
Шаг 1: Определение условий.
Число является трёхзначным, если оно находится в диапазоне от до включительно. Математически это записывается как: .
Шаг 2: Выбор переменных.
Нам понадобятся следующие переменные:
— count: для подсчёта количества подходящих чисел (изначально );
— total_sum: для накопления суммы подходящих чисел (изначально );
— x: для хранения текущего введённого числа.
Шаг 3: Алгоритм действий.
1. Считываем первое число.
2. Пока считанное число не равно :
а) Проверяем, является ли оно трёхзначным ( и ).
б) Если да, прибавляем его к total_sum и увеличиваем count на .
в) Считываем следующее число.
3. После завершения цикла проверяем значение count.
4. Если count > 0, вычисляем среднее арифметическое по формуле: и выводим результат.
5. Если count = 0, выводим "NO".
Пример реализации на языке Python:
count = 0 total_sum = 0 x = int(input()) while x != 0: if 100 <= x <= 999: total_sum += x count += 1 x = int(input()) if count > 0: print(total_sum / count) else: print("NO")Разбор примера №1:
Ввод: .
— : не трёхзначное.
— : трёхзначное. total_sum = , count = .
— : трёхзначное. total_sum = , count = .
— : конец ввода.
Результат: .
Ответ: Программа считывает числа до нуля, суммирует те, что лежат в интервале [100; 999], и делит сумму на их количество. Если таких чисел нет, выводит NO.
Источник: ФИПИ