Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру D. На вход программе сначала подаётся количество элементов последовательности N (1 ≤ N ≤ 1000), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов последовательности.
| Входные данные | Выходные данные |
|---|---|
| 5 173 285 893 957 4125 | 3 |
Решение по шагам
5 шаговСчитываем количество элементов последовательности и создаём счётчик подходящих чисел.
Трёхзначная шестнадцатеричная запись начинается с числа $100_{16}=256$ и заканчивается числом $FFF_{16}=4095$.
$$256 \leq x \leq 4095$$Последняя шестнадцатеричная цифра определяется остатком от деления на 16. Цифре D соответствует остаток 13.
$$x \bmod 16 = 13$$Для каждого элемента проверяем оба условия одновременно и увеличиваем счётчик.
Выводим полученное количество подходящих элементов.
```python
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 256 <= x <= 4095 and x % 16 == 13:
count += 1
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют последнюю цифру в десятичной записи вместо шестнадцатеричной.
Не учитывают нижнюю или верхнюю границу диапазона трёхзначных шестнадцатеричных чисел.
Проверяют только делимость на 16, хотя для цифры D нужен остаток 13.
Используют условие OR вместо одновременной проверки обоих условий.