Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 0. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число — количество искомых элементов последовательности.
| Входные данные | Выходные данные |
|---|---|
| 160 272 880 944 4112 0 | 3 |
Пример работы программы:
Решение по шагам
4 шагаТрёхзначная запись в шестнадцатеричной системе начинается с числа $100_{16}$ и заканчивается числом $FFF_{16}$.
$$16^2 \leq n \leq 16^3 - 1 \quad\Longrightarrow\quad 256 \leq n \leq 4095$$Последняя шестнадцатеричная цифра равна 0 тогда и только тогда, когда число делится на 16 без остатка.
$$n \bmod 16 = 0$$Организуем цикл чтения чисел. При вводе 0 завершаем цикл, не обрабатывая это число. Для подходящих чисел увеличиваем счётчик.
$$count = count + 1$$После завершения ввода выводим значение счётчика.
Программа должна проверять условие $256 \leq n \leq 4095$ и $n \bmod 16 = 0$, считать количество подходящих чисел и вывести счётчик.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Включают число 0 в обрабатываемую последовательность.
Проверяют делимость на 10 вместо делимости на 16.
Используют верхнюю границу 4096, хотя число $1000_{16}$ уже имеет четыре шестнадцатеричные цифры.
Забывают вывести итоговое значение счётчика.