Для решения данной задачи необходимо написать программу, которая будет считывать последовательность натуральных чисел, определять, оканчивается ли запись числа в системе счисления с основанием 7 нечётной цифрой, и вычислять среднее арифметическое таких чисел. Если таких чисел нет, программа должна вывести NO.
Пример реализации на Python:
def to_base7(n):
if n == 0:
return '0'
digits = []
while n:
digits.append(str(n % 7))
n //= 7
return ''.join(digits[::-1])
numbers = []
while True:
num = int(input())
if num == 0:
break
numbers.append(num)
suitable_numbers = []
for num in numbers:
base7_representation = to_base7(num)
if int(base7_representation[-1]) % 2 != 0:
suitable_numbers.append(num)
if not suitable_numbers:
print("NO")
else:
average = sum(suitable_numbers) / len(suitable_numbers)
print(average)
Объяснение кода:
to_base7(n): преобразует десятичное число n в систему счисления с основанием 7.suitable_numbers.suitable_numbers пуст, выводим "NO", иначе вычисляем и выводим среднее арифметическое чисел из этого списка.