Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести среднее арифметическое чисел, кратных 8, или
вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых.
Пример работы программы:
Входные данные
Выходные данные
812264160
29.3
11110
NO
Решение.
var a, s, n: integer; begin s:=0; n:=0; readln(a); while a<>0 do begin if (a mod 8 = 0) then begin s := s + a; n := n + 1; end; readln(a); end; if n > 0 then writeln(s/n :5:1) else writeln(’NO’); end.
Приведем другое решение на языке Python.
s = 0 n = 0 a = 1 while a != 0: a = int(input()) if a == 0: break if a % 8 == 0: s += a n += 1 if n > 0: print(round(s/n, 1)) else: print('NO')
Для проверки правильности работы программы необходимо использовать следующие тесты:
№
Входные данные
Выходные данные
1
2 222 0
NO
2
16 0
16.0
3
1632648 8 5 0
25.6
Просмотр содержимого документа
«Разбор задания ОГЭ по информатике. Февраль 2025. Программирование. Каталог заданий. Задания для подготовки»
Тип 16 № 37900
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое чисел, кратных 8, или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести среднее арифметическое чисел, кратных 8, или
вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых.
Пример работы программы:
Входные данные
Выходные данные
812264160
29.3
11110
NO
Решение.
var a, s, n: integer; begin s:=0; n:=0; readln(a); while a0 do begin if (a mod 8 = 0) then begin s := s + a; n := n + 1; end; readln(a); end; if n 0 then writeln(s/n :5:1) else writeln(’NO’); end.
Приведем другое решение на языке Python.
s = 0 n = 0 a = 1 while a != 0: a = int(input()) if a == 0: break if a % 8 == 0: s += a n += 1 if n 0: print(round(s/n, 1)) else: print('NO')
Для проверки правильности работы программы необходимо использовать следующие тесты: