Шешімі: Среднее чисел в семеричной системе
Напишите программу, которая в последовательности натуральных десятичных чисел определяет среднее арифметическое элементов, запись которых в системе счисления с основанием 7 оканчивается цифрой 4. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход в первой строке натуральное число $N$ ($3 \leq N \leq 10\,000$), затем $N$ натуральных чисел, не превышающих $30\,000$, каждое в отдельной строке.
Программа должна вывести одно число — среднее арифметическое десятичных чисел, запись которых в $7$-ричной системе счисления оканчивается цифрой 4, или «NO», если среди входных данных таких элементов нет.
Шешім по шагам
4 қадамПоследняя цифра записи натурального числа в семеричной системе счисления определяется остатком от деления числа на 7. Поэтому число подходит, если остаток равен 4.
$$x \bmod 7 = 4$$При просмотре всех $N$ чисел будем отдельно подсчитывать количество подходящих чисел и их сумму.
$$S = \sum x_i, \quad K = \text{количество чисел, для которых } x_i \bmod 7 = 4$$Если подходящие числа найдены, среднее арифметическое равно отношению суммы к их количеству. В противном случае выводится «NO».
$$\overline{x} = \dfrac{S}{K}$$Пример программы на Python:
Программа должна проверять условие x % 7 == 4, накапливать сумму и количество таких чисел, а затем вывести S / K или NO.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют делимость числа на 7 вместо проверки остатка, равного 4.
Переводят число в семеричную систему с ошибкой, хотя достаточно вычислить остаток от деления на 7.
Делят сумму на общее количество введённых чисел, а не на количество подходящих.
Не обрабатывают случай, когда подходящих чисел нет.
Используют целочисленное деление вместо обычного деления.