20.2(№ 987) Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое...

Тематика Информатика
Уровень 5 - 9 классы
программирование среднее арифметическое числа кратные 8 обработка последовательностей ввод данных условные операторы цикл Python вычисления алгоритмы математические операции
0

20.2(№ 987) Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести среднее арифметическое чисел, кратных 8, или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых. Пример работы программы:

avatar
задан 3 месяца назад

3 Ответа

0

sum = 0
count = 0

while True:
    num = int(input())
    if num == 0:
        break
    if num % 8 == 0:
        sum += num
        count += 1

if count == 0:
    print("NO")
else:
    print("{:.1f}".format(sum / count))

avatar
ответил 3 месяца назад
0

Для решения этой задачи нужно написать программу, которая будет обрабатывать последовательность натуральных чисел, определяя среднее арифметическое чисел, кратных 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}")

Пояснение:

  1. Список multiples_of_8: Используется для хранения всех чисел из последовательности, которые делятся на 8 без остатка.

  2. Цикл while: Позволяет вводить числа по одному. Цикл продолжается до тех пор, пока не будет введено число 0.

  3. Условие if number % 8 == 0:: Проверяет, делится ли введённое число на 8 без остатка. Если да, то оно добавляется в список multiples_of_8.

  4. Проверка if len(multiples_of_8) == 0:: Если список multiples_of_8 пуст, значит, среди введённых чисел не было кратных 8, и программа выводит "NO".

  5. Вычисление среднего арифметического: Если в списке есть числа, кратные 8, программа вычисляет их среднее арифметическое.

  6. Форматированный вывод: Используется форматирование строки для вывода результата с точностью до десятых.

Пример работы программы:

Введите натуральное число (0 для завершения ввода): 16
Введите натуральное число (0 для завершения ввода): 23
Введите натуральное число (0 для завершения ввода): 40
Введите натуральное число (0 для завершения ввода): 0
28.0

В этом примере из введённых чисел только 16 и 40 кратны 8, и их среднее арифметическое равно 28.0.

avatar
ответил 3 месяца назад
0

Для решения данной задачи можно написать следующую программу на Python:

sum = 0
count = 0

while True:
    num = int(input())
    if num == 0:
        break
    if num % 8 == 0:
        sum += num
        count += 1

if count != 0:
    average = sum / count
    print("{:.1f}".format(average))
else:
    print("NO")

Эта программа считывает последовательность натуральных чисел, находит числа, кратные 8, вычисляет их сумму и количество, а затем выводит среднее арифметическое чисел, кратных 8, с точностью до десятых. Если таких чисел нет, программа выводит "NO".

avatar
ответил 3 месяца назад

Ваш ответ

Вопросы по теме