Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру A. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Программа должна напечатать только одно число — количество искомых элементов последовательности.
В ответе запишите развернутый ответ с программой.
Решение по шагам
4 шагаТрёхзначное число в шестнадцатеричной системе находится в диапазоне от $100_{16}=256_{10}$ до $FFF_{16}=4095_{10}$.
$$256 \leq n \leq 4095$$Шестнадцатеричная цифра A имеет значение 10. Поэтому последняя цифра записи числа равна A, если остаток от деления числа на 16 равен 10.
$$n \bmod 16 = 10$$Считываем числа до появления нуля. Для каждого числа, удовлетворяющего обоим условиям, увеличиваем счётчик.
Программа на Python:
$$count = 0 while True: n = int(input()) if n == 0: break if 256 <= n <= 4095 and n % 16 == 10: count += 1 print(count)$$```python
count = 0
while True:
n = int(input())
if n == 0:
break
if 256 <= n <= 4095 and n % 16 == 10:
count += 1
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только остаток от деления на 16, но не проверяют трёхзначность шестнадцатеричной записи.
Считают число 0 элементом последовательности.
Используют остаток 15 вместо 10 для цифры A.
Выводят дополнительные пояснения, хотя программа должна напечатать только одно число.