РУҚА
16

Решение: Среднее кратных девяти

ОГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИ4E7CA2Развёрнутое решение≈ 10 минутРазбор в 5 шагов
Условие

Напишите программу, которая в последовательности целых чисел находит среднее арифметическое чисел, кратных 9, или сообщает, что таких чисел нет. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не является членом последовательности).

Количество чисел не превышает 100. Введённые числа по модулю не превышают 300.

Программа должна вывести среднее арифметическое чисел, кратных 9, или вывести NO, если таких чисел в последовательности нет.

Входные данныеВыходные данные
9 −30 18 013.5
−15 7 0NO
Пример работы программы
Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

5 шагов
1

Считываем очередное число. Если оно равно 0, завершаем ввод, так как 0 не входит в последовательность.

$$x = 0 \Rightarrow \text{конец ввода}$$
2

Для каждого ненулевого числа проверяем делимость на 9 с помощью остатка от деления. Если остаток равен нулю, добавляем число к сумме и увеличиваем счётчик.

$$x \bmod 9 = 0$$
3

После завершения ввода проверяем счётчик. Если подходящие числа найдены, среднее арифметическое равно отношению суммы к их количеству.

$$\overline{x} = \dfrac{\mathrm{sum}}{\mathrm{count}}$$
4

Если подходящих чисел нет, выводим NO.

$$\mathrm{count} = 0 \Rightarrow \mathrm{NO}$$

Один из вариантов программы на Python:

Ответ

s = 0
count = 0

while True:
x = int(input())
if x == 0:
break
if x % 9 == 0:
s += x
count += 1

if count == 0:
print('NO')
else:
print(s / count)

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Включают завершающий 0 в расчёт среднего.

Проверяют, делится ли на 9 количество введённых чисел, вместо проверки каждого числа.

Выводят 0 или вызывают деление на ноль, если чисел, кратных 9, нет.

Используют целочисленное деление вместо обычного деления.

Закрепить приёмВ теме «Основы программирования» ещё 153 задачи — с ответом и таким же разбором.
Тренироваться

Как решать задание 16 ОГЭ, информатика

Разбор этой задачи разложен на 5 шагов: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Основы программирования»: в ней 154 задачи, и у каждой есть такой же разбор. Регистрация не нужна.