Шешімі: Подсчёт шестнадцатеричных Жазбалар
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру A. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности N (1 ≤ N ≤ 1000), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример работы программы: при входных данных 5, 170, 282, 890, 954, 4122 программа должна вывести 3.
Шешім по шагам
4 қадамТрёхзначная запись в шестнадцатеричной системе начинается с ненулевой цифры и содержит значения от $100_{16} = 256_{10}$ до $FFF_{16} = 4095_{10}$.
$$256 \leq x \leq 4095$$Шестнадцатеричная цифра A соответствует десятичному значению 10. Поэтому запись оканчивается на A тогда и только тогда, когда остаток от деления числа на 16 равен 10.
$$x \bmod 16 = 10$$Последовательно считываем все N чисел и увеличиваем счётчик, если оба условия выполнены.
$$count \mathrel{+}= 1$$Пример программы на Python:
$$n = int(input()) count = 0 for _ in range(n): x = int(input()) if 256 <= x <= 4095 and x % 16 == 10: count += 1 print(count)$$n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 256 <= x <= 4095 and x % 16 == 10:
count += 1
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только последнюю цифру, но не проверяют, что жазба является трёхзначной.
Используют остаток 15 или 11 вместо 10 для шестнадцатеричной цифры A.
Считают число 4096 подходящим, хотя его жазба равна 1000₁₆ и содержит төрт цифры.