Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру C. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов последовательности.
Решение по шагам
4 шагаСчитываем количество элементов последовательности и создаём счётчик подходящих чисел.
$$count = 0$$Каждое число переводим в шестнадцатеричную систему счисления. Формат `X` записывает цифры A–F заглавными буквами.
$$s = \operatorname{format}(x, 'X')$$Число подходит, если его запись содержит ровно три символа и последний символ равен C.
$$\operatorname{len}(s)=3 \land s[-1]='C'$$При выполнении условия увеличиваем счётчик, после обработки всех чисел выводим его значение.
$$print(count)$$n = int(input())
count = 0
for _ in range(n):
x = int(input())
s = format(x, 'X')
if len(s) == 3 and s[-1] == 'C':
count += 1
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют количество цифр в десятичной записи, а не в шестнадцатеричной.
Используют строчную букву `c`, хотя формат `X` даёт заглавные буквы.
Проверяют только окончание на C и забывают условие о трёхзначной записи.
Выводят сами подходящие числа вместо их количества.