16. Программирование: #294636
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру $B$. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
| Входные данные | Выходные данные |
|---|---|
| 5 171 283 891 955 4123 | 3 |
Трёхзначное число в шестнадцатеричной системе счисления находится в диапазоне от $100_{16}$ до $FFF_{16}$. В десятичной системе это числа от $256$ до $4095$:
$100_{16}=256$
$FFF_{16}=4095$.
Если запись числа в шестнадцатеричной системе счисления оканчивается цифрой B, то при делении этого числа на $16$ остаток должен быть равен $11$, так как $B_{16}=11_{10}$.
Значит, для каждого введённого числа достаточно проверить два условия: $256 \leq x \leq 4095$ и $x\ %\ 16 == 11$. Будем увеличивать счётчик на $1$, если оба условия выполняются. Так как количество элементов последовательности задано числом $N$, обработаем все числа с помощью цикла.
n = int(input())
count = 0
for i in range(n):
x = int(input())
if 256 <= x <= 4095 and x % 16 == 11:
count += 1
print(count)
Для приведённого примера условию соответствуют числа $283$, $891$ и $955$:
$283=11B_{16}$
$891=37B_{16}$
$955=3BB_{16}$.
Число $171=AB_{16}$ является двузначным, а $4123=101B_{16}$ — четырёхзначным, поэтому они не подходят.
Таким образом, программа выведет: $3$.