Ответ: Среднее по последней цифре
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 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа, не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 — признак окончания ввода, в последовательность не входит).
Программа должна вывести одно число — среднее арифметическое десятичных чисел, запись которых в системе счисления с основанием 7 оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Пример работы программы:
Входные данные:
12
15
10
71
50
11
0
Выходные данные:
31.6
Где здесь ошибаются
Проверяют нечётность самого числа, а не его последней цифры в системе счисления с основанием 7.
Включают завершающий ноль в сумму или количество чисел.
Забывают обработать случай, когда подходящих чисел нет.
Используют целочисленное деление вместо обычного деления при вычислении среднего арифметического.