РУҚА
16

Решение: Среднее по последней цифре

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

Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе счисления с основанием 7 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».

Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).

Программа должна вывести одно число — среднее арифметическое десятичных чисел, запись которых в системе счисления с основанием 7 оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.

Пример работы программы:
Входные данные:
12
15
10
71
50
11
0

Выходные данные:
31.6

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

5 шагов
1

Последняя цифра записи натурального числа в системе счисления с основанием 7 определяется остатком от деления числа на 7.

$$last\_digit = n \bmod 7$$
2

Если этот остаток нечётный, число учитывается при вычислении среднего арифметического.

$$n \bmod 7 \bmod 2 = 1$$
3

Последовательно считываем числа до появления нуля, отдельно накапливая сумму подходящих чисел и их количество.

$$S = S + n,\quad k = k + 1$$
4

После окончания ввода проверяем, были ли подходящие числа. При наличии таких чисел выводим среднее арифметическое, иначе выводим «NO».

$$\frac{S}{k},\quad k > 0$$

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

Ответ

s = 0
k = 0

while True:
n = int(input())
if n == 0:
break
if (n % 7) % 2 == 1:
s += n
k += 1

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

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

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

Проверяют нечётность самого числа, а не его последней цифры в системе счисления с основанием 7.

Включают завершающий ноль в сумму или количество чисел.

Забывают обработать случай, когда подходящих чисел нет.

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

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

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

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

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