Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 1. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример: для входных данных 5, 161, 273, 881, 945, 4113 программа должна вывести 3.
Решение по шагам
4 шагаВ шестнадцатеричной системе счисления цифры разрядов имеют веса $16^0$, $16^1$, $16^2$. Поэтому трёхзначные записи соответствуют числам от $16^2$ до $16^3 - 1$.
$$256 \leq x < 4096$$Последняя шестнадцатеричная цифра определяется остатком от деления числа на 16. Она равна 1, если остаток равен 1.
$$x \bmod 16 = 1$$Для каждого из $N$ чисел проверяем оба условия. При их одновременном выполнении увеличиваем счётчик на единицу.
$$count := count + 1$$После обработки всей последовательности выводим значение счётчика.
$$print(count)$$Проверять каждое число по условию $256 \leq x < 4096$ и $x \bmod 16 = 1$, увеличивая счётчик подходящих элементов.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только остаток от деления на 16 и не учитывают, что запись должна быть трёхзначной.
Используют верхнюю границу $4096$, забывая, что число 4096 записывается как $1000_{16}$ и не является трёхзначным.
Проверяют последнюю десятичную цифру вместо последней шестнадцатеричной цифры.
Выводят сами подходящие числа, а не их количество.