Шешімі: Последняя цифра в пятеричной системе
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых в системе счисления с основанием 5 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход в первой строке натуральное число $N$ ($3 \leq N \leq 10\,000$), затем $N$ натуральных чисел, не превышающих 30 000, каждое в отдельной строке.
Программа должна вывести одно число — количество десятичных чисел, запись которых в 5-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Пример: для входных данных $6$, $12$, $15$, $10$, $71$, $50$, $11$ программа должна вывести $2$.
Шешімін қадамдап көрсету
5 қадамПоследняя цифра записи натурального числа в системе счисления с основанием 5 определяется остатком от деления этого числа на 5.
$$last = x \bmod 5$$Возможные нечётные цифры пятеричной системы — 1 и 3. Поэтому число учитывается, если остаток от деления на 5 равен 1 или 3.
$$x \bmod 5 \in \{1,3\}$$Обрабатываем все $N$ чисел и увеличиваем счётчик подходящих элементов.
$$count = count + 1$$Если подходящих чисел нет, выводим «NO», иначе выводим значение счётчика.
$$count = 0 \Rightarrow \text{вывести NO}$$Пример реализации на Python:
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if x % 5 == 1 or x % 5 == 3:
count += 1
if count == 0:
print('NO')
else:
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют нечётность самого десятичного числа, а не последней цифры его пятеричной жазбалар.
Забывают, что в системе счисления с основанием 5 цифры принимают значения от 0 до 4.
Считают остаток 0 или 4 нечётной цифрой.
Выводят 0 вместо строки «NO», если подходящих элементов нет.