РУҚА
16

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

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

Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру B. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Программа должна напечатать только одно число — количество искомых элементов последовательности.

Пример входных данных: 171, 283, 891, 955, 4123, 0. Пример выходных данных: 3.

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

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

4 шага
1

В шестнадцатеричной системе счисления трёхзначные числа начинаются с $16^2 = 256$ и заканчиваются числом $16^3 - 1 = 4095$.

$$256 \leq n \leq 4095$$
2

Последняя цифра шестнадцатеричной записи определяется остатком от деления на 16. Цифре B соответствует десятичное значение 11.

$$n \bmod 16 = 11$$
3

Организуем цикл чтения чисел до появления нуля. Для каждого числа, удовлетворяющего обоим условиям, увеличиваем счётчик.

Для примера подходят числа 283 = 11B, 891 = 37B и 955 = 3BB. Число 171 имеет двухзначную запись AB, а 4123 — четырёхзначную запись 101B.

Ответ

n = int(input())
count = 0
while n != 0:
if 256 <= n <= 4095 and n % 16 == 11:
count += 1
n = int(input())
print(count)

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

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

Учитывают число 0 как элемент последовательности.

Проверяют только последнюю цифру и не проверяют, что запись имеет ровно три шестнадцатеричные цифры.

Используют остаток от деления на 10 вместо остатка от деления на 16.

Включают в диапазон число 4096, которое записывается как 1000 в шестнадцатеричной системе.

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

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

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

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