Для решения этой задачи нужно написать программу, которая будет обрабатывать последовательность натуральных чисел, определяя среднее арифметическое чисел, кратных 8. Если таких чисел нет, программа должна вывести "NO". Вот как можно реализовать такую программу на языке Python:
# Инициализация списка для хранения чисел, кратных 8
multiples_of_8 = []
# Ввод чисел
while True:
number = int(input("Введите натуральное число (0 для завершения ввода): "))
# Проверка на признак окончания ввода
if number == 0:
break
# Проверка кратности числу 8
if number % 8 == 0:
multiples_of_8.append(number)
# Проверка наличия чисел, кратных 8
if len(multiples_of_8) == 0:
print("NO")
else:
# Вычисление среднего арифметического
average = sum(multiples_of_8) / len(multiples_of_8)
# Вывод среднего арифметического с точностью до десятых
print(f"{average:.1f}")
Пояснение:
Список multiples_of_8
: Используется для хранения всех чисел из последовательности, которые делятся на 8 без остатка.
Цикл while
: Позволяет вводить числа по одному. Цикл продолжается до тех пор, пока не будет введено число 0.
Условие if number % 8 == 0:
: Проверяет, делится ли введённое число на 8 без остатка. Если да, то оно добавляется в список multiples_of_8
.
Проверка if len(multiples_of_8) == 0:
: Если список multiples_of_8
пуст, значит, среди введённых чисел не было кратных 8, и программа выводит "NO".
Вычисление среднего арифметического: Если в списке есть числа, кратные 8, программа вычисляет их среднее арифметическое.
Форматированный вывод: Используется форматирование строки для вывода результата с точностью до десятых.
Пример работы программы:
Введите натуральное число (0 для завершения ввода): 16
Введите натуральное число (0 для завершения ввода): 23
Введите натуральное число (0 для завершения ввода): 40
Введите натуральное число (0 для завершения ввода): 0
28.0
В этом примере из введённых чисел только 16 и 40 кратны 8, и их среднее арифметическое равно 28.0.