РУҚА
16

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

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

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

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

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

5 шагов
1

Трёхзначная запись в шестнадцатеричной системе начинается с разряда $16^2$ и заканчивается перед $16^3$, поэтому число должно удовлетворять неравенству $256 \leq n < 4096$.

$$16^2 \leq n < 16^3$$
2

Шестнадцатеричная цифра C соответствует десятичному значению $12$. Поэтому последняя цифра записи равна C тогда и только тогда, когда остаток от деления числа на $16$ равен $12$.

$$n \bmod 16 = 12$$
3

Считываем числа до появления нуля. Ноль является признаком окончания ввода и не проверяется.

4

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

$$count = count + 1$$

Один из вариантов реализации программы на Python:

$$count = 0\nwhile True:\n n = int(input())\n if n == 0:\n break\n if 256 <= n < 4096 and n % 16 == 12:\n count += 1\nprint(count)$$
Ответ

Программа должна считать числа $n$, для которых $256 \leq n < 4096$ и $n \bmod 16 = 12$, до первого нуля, а затем вывести количество таких чисел.

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

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

Проверяют только остаток от деления на 16 и не проверяют, что запись числа трёхзначная.

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

Используют условие $n \leq 4096$, хотя число $4096$ записывается как $1000_{16}$ и не является трёхзначным.

Считают, что цифре C соответствует остаток 13, хотя $\mathrm{C}_{16} = 12_{10}$.

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

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

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

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