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