РУҚА
16

Решение: Сумма чисел по основанию 7

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

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

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

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

Пример работы программы:
Входные данные:
5
20
13
9
28
12

Выходные данные:
33

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

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

5 шагов
1

Последняя цифра записи натурального числа в системе счисления с основанием 7 определяется остатком от деления этого числа на 7. Поэтому подходят числа, для которых выполняется условие $x \bmod 7 = 6$.

$$x \bmod 7 = 6$$
2

Последовательно считываем все $N$ чисел. Для подходящих чисел увеличиваем сумму и количество найденных элементов.

$$S := S + x$$
3

После обработки всей последовательности проверяем, были ли найдены подходящие элементы. Если нет, выводим «NO», иначе выводим сумму.

$$k = 0 \Rightarrow \text{вывести NO}$$
4

Один из возможных вариантов программы на Python:

Программа работает за время $O(N)$ и использует $O(1)$ дополнительной памяти.

Ответ

n = int(input())
s = 0
count = 0

for _ in range(n):
x = int(input())
if x % 7 == 6:
s += x
count += 1

if count == 0:
print("NO")
else:
print(s)

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Проверяют последнюю цифру десятичной записи вместо остатка от деления на 7.

Суммируют остатки от деления, а не исходные десятичные числа.

Не обрабатывают случай, когда подходящих чисел нет.

Считывают не все $N$ чисел.

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

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

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

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