16

Решение: Сумма чисел по остатку

ОГЭ · Информатика · Задание 16 · Основы программирования
ПовышеннаяФИПИ5A3C65Развёрнутое решение≈ 10 минутРазбор в 5 шагов
Условие

Напишите программу, которая в последовательности натуральных десятичных чисел определяет сумму элементов, запись которых в системе счисления с основанием 5 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».

Программа получает на вход в первой строке натуральное число $N$ ($3 \leq N \leq 10\,000$), затем $N$ натуральных чисел, не превышающих $30\,000$, каждое в отдельной строке.

Программа должна вывести одно число — сумму десятичных чисел последовательности, запись которых в $5$-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.

Пример работы программы:
Входные данные:
$6$
$12$
$15$
$10$
$71$
$50$
$11$

Выходные данные:
$82$.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

5 шагов
1

Последняя цифра записи натурального числа в системе счисления с основанием $5$ определяется остатком от деления числа на $5$.

2

Нечётные цифры в системе счисления с основанием $5$ — это $1$ и $3$. Поэтому число подходит, если его остаток от деления на $5$ равен $1$ или $3$.

$$x \bmod 5 = 1 \quad \text{или} \quad x \bmod 5 = 3$$
3

Для каждого из $N$ чисел проверяем условие и добавляем подходящее число к сумме. Если подходящих чисел не было, выводим «NO».

4

Пример: числа $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».

Закрепить приёмВ теме «Основы программирования» ещё 153 задачи — с ответом и таким же разбором.
Тренироваться

Как решать задание 16 ОГЭ, информатика

Разбор этой задачи разложен на 5 шагов: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Основы программирования»: в ней 154 задачи, и у каждой есть такой же разбор. Регистрация не нужна.