16

Решение: Подсчёт шестнадцатеричных чисел

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

Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 5. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов.

Входные данныеВыходные данные
5 165 277 885 949 41173
Пример работы программы
Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

4 шага
1

Считываем количество элементов последовательности и устанавливаем счётчик подходящих чисел равным нулю.

$$count = 0$$
2

Для каждого числа получаем его запись в шестнадцатеричной системе без префикса `0x`.

$$s = \operatorname{hex}(x)[2:]$$
3

Число подходит, если его шестнадцатеричная запись содержит ровно три символа и последний символ равен `5`.

$$\operatorname{len}(s)=3 \land s[-1]='5'$$

При выполнении условия увеличиваем счётчик и после обработки всех чисел выводим его значение.

$$print(count)$$
Ответ

Пример решения на Python:

n = int(input())
count = 0
for _ in range(n):
x = int(input())
s = hex(x)[2:]
if len(s) == 3 and s[-1] == '5':
count += 1
print(count)

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

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

Проверяют трёхзначность числа в десятичной системе, а не длину его шестнадцатеричной записи.

Забывают удалить префикс `0x` перед подсчётом длины записи.

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

Выводят сами подходящие числа, хотя требуется вывести только их количество.

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

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

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

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