Шешімі: Подсчёт шестнадцатеричных Жазбалар
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 8. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример работы программы:
Входные данные:
5
168
280
888
952
4120
Выходные данные:
3
Шешім по шагам
4 қадамСчитываем количество элементов последовательности и создаём счётчик подходящих чисел.
$$n = int(input()); count = 0$$Для каждого числа получаем его шестнадцатеричную жазба без префикса 0x.
$$s = format(x, 'X')$$Проверяем, что запись состоит ровно из трёх символов и оканчивается на цифру 8. В шестнадцатеричной системе цифра 8 обозначается тем же символом 8.
$$len(s) = 3 \land s[-1] = '8'$$После обработки всех элементов выводим количество найденных чисел.
$$print(count)$$Пример программы на Python:
n = int(input())
count = 0
for _ in range(n):
x = int(input())
s = format(x, 'X')
if len(s) == 3 and s[-1] == '8':
count += 1
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют количество цифр в десятичной жазбалар, а не в шестнадцатеричной.
Используют строку с префиксом 0x, из-за чего длина жазбалар увеличивается на два символа.
Проверяют окончание десятичного числа вместо последнего символа его шестнадцатеричной жазбалар.
Не считывают все N элементов последовательности.