Давайте подробно разберем задачу и предложим решение.
Условие задачи
Дан поток натуральных чисел, завершающийся числом 0 (которое не входит в рассматриваемую последовательность). Для каждого числа нужно проверить:
- В системе счисления с основанием 5, какая у него последняя цифра.
- Если последняя цифра в этой системе нечётная (то есть 1 или 3), то номер этого числа входит в выборку.
Задача:
- В конце требуется вывести среднее арифметическое всех таких чисел.
- Если таких чисел не было, — вывести "NO".
Что нужно сделать
Обработка входных данных:
Считывать числа до тех пор, пока не встретится 0.Проверка последней цифры в системе счисления с основанием 5:
- Для этого можно взять число по модулю 5:
число % 5. - Если результат равен 1 или 3 — цифра нечётная.
- Для этого можно взять число по модулю 5:
Расчет среднего арифметического:
- Собрать все подходящие числа.
- Посчитать их сумму и количество.
- Вывести сумму деленную на количество, или "NO", если таких чисел не было.
Пример решения на Python
# Инициализация переменных для хранения суммы и количества подходящих чисел
sum_numbers = 0
count = 0
while True:
number = int(input())
if number == 0:
break
last_digit_five_base = number % 5
# Проверяем, является ли последняя цифра в системе с основанием 5 нечётной
if last_digit_five_base in [1, 3]:
sum_numbers += number
count += 1
# Вывод результата
if count == 0:
print("NO")
else:
print(sum_numbers / count)
Объяснение кода
- Цикл
while Trueобеспечивает считывание чисел до появления 0. - Каждое число проверяется: берется остаток от деления на 5 (
number % 5). - Если остаток равен 1 или 3, число включается в сумму и увеличивается счетчик.
- После завершения ввода, если подходящих чисел не найдено (
count == 0), выводим "NO". - Иначе — выводим среднее арифметическое.
Если нужна помощь по другим языкам программирования или более подробно — обращайтесь!