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