Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру E.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число — количество искомых элементов последовательности.
В развернутом ответе приведите программу и кратко поясните используемый алгоритм.
Решение по шагам
5 шаговВ шестнадцатеричной системе используются цифры от 0 до 9 и буквы A–F. Цифре E соответствует десятичное значение 14.
Трёхзначная шестнадцатеричная запись начинается с разряда $16^2$, поэтому число должно удовлетворять условию $16^2 \leq x < 16^3$, то есть $256 \leq x \leq 4095$.
Последняя шестнадцатеричная цифра определяется остатком от деления числа на 16. Для цифры E этот остаток равен 14.
Последовательно проверяем все элементы и увеличиваем счётчик, если выполнены оба условия.
Программа на Python:
$$n = int(input()) count = 0 for _ in range(n): x = int(input()) if 256 <= x <= 4095 and x % 16 == 14: count += 1 print(count)$$```python
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 256 <= x <= 4095 and x % 16 == 14:
count += 1
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только последнюю цифру, но не проверяют, что запись является трёхзначной.
Считают, что цифре E соответствует остаток 15, хотя E имеет значение 14.
Используют диапазон от 256 до 4096 включительно; число 4096 уже имеет четырёхзначную шестнадцатеричную запись.
Преобразуют числа в строки без необходимости и допускают ошибки при проверке регистра символа E.