Решение: Сумма чисел по остатку
Напишите программу, которая в последовательности натуральных десятичных чисел определяет сумму элементов, запись которых в системе счисления с основанием 5 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход в первой строке натуральное число $N$ ($3 \leq N \leq 10\,000$), затем $N$ натуральных чисел, не превышающих $30\,000$, каждое в отдельной строке.
Программа должна вывести одно число — сумму десятичных чисел последовательности, запись которых в $5$-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.
Пример работы программы:
Входные данные:
$6$
$12$
$15$
$10$
$71$
$50$
$11$
Выходные данные:
$82$.
Решение по шагам
5 шаговПоследняя цифра записи натурального числа в системе счисления с основанием $5$ определяется остатком от деления числа на $5$.
Нечётные цифры в системе счисления с основанием $5$ — это $1$ и $3$. Поэтому число подходит, если его остаток от деления на $5$ равен $1$ или $3$.
$$x \bmod 5 = 1 \quad \text{или} \quad x \bmod 5 = 3$$Для каждого из $N$ чисел проверяем условие и добавляем подходящее число к сумме. Если подходящих чисел не было, выводим «NO».
Пример: числа $71$ и $11$ имеют остаток $1$ при делении на $5$, поэтому их сумма равна $71 + 11 = 82$.
Один из вариантов программы на Python:
$$n = int(input()) s = 0 count = 0 for _ in range(n): x = int(input()) if x % 5 in (1, 3): s += x count += 1 print(s if count > 0 else 'NO')$$```python
n = int(input())
s = 0
count = 0
for _ in range(n):
x = int(input())
if x % 5 in (1, 3):
s += x
count += 1
print(s if count > 0 else 'NO')
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют нечётность самого числа, а не последней цифры его записи в системе счисления с основанием $5$.
Учитывают только остаток $1$ и забывают про остаток $3$.
Переводят число в пятеричную систему вручную, хотя достаточно найти остаток от деления на $5$.
Выводят $0$, если подходящих чисел нет, вместо строки «NO».