16

Решение: Подсчёт цифры в семеричной системе

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

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

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

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

Пример работы программы:
Входные данные:
5
37
22
16
25
42

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

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

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

4 шага
1

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

$$x \bmod 7 = 2$$
2

Считываем количество чисел $N$ и последовательно обрабатываем все элементы, не сохраняя их. Если остаток от деления очередного числа на 7 равен 2, увеличиваем счётчик.

$$count = count + 1$$
3

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

$$count = 0 \Rightarrow \text{NO}$$

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

$$n = int(input())\ncount = 0\nfor _ in range(n):\n x = int(input())\n if x % 7 == 2:\n count += 1\nif count == 0:\n print('NO')\nelse:\n print(count)$$
Ответ

n = int(input())
count = 0
for _ in range(n):
x = int(input())
if x % 7 == 2:
count += 1
if count == 0:
print('NO')
else:
print(count)

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

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

Проверяют делимость числа на 7 вместо проверки остатка, равного 2.

Пытаются сравнивать последнюю цифру десятичной записи числа с 2.

Выводят 0 вместо «NO», когда подходящих чисел нет.

Обрабатывают не все $N$ чисел.

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

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

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

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