Шешімі: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру F. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \le N \le 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов.
Пример: для входной последовательности 175, 287, 895, 959, 4127 искомыми являются 287 = $11F_{16}$, 895 = $37F_{16}$ и 959 = $3BF_{16}$.
Шешім по шагам
5 қадамСчитываем количество элементов последовательности и создаём счётчик подходящих чисел.
$$count = 0$$Трёхзначная запись в шестнадцатеричной системе означает, что число находится в диапазоне от $16^2 = 256$ до $16^3 - 1 = 4095$.
Последняя шестнадцатеричная цифра F имеет значение 15, поэтому число должно давать остаток 15 при делении на 16.
$$x \bmod 16 = 15$$Для каждого элемента проверяем оба условия и увеличиваем счётчик. После обработки всех элементов выводим его значение.
$$256 \le x < 4096 \ \text{и}\ x \bmod 16 = 15$$Пример программы на Python:
$$n = int(input()) count = 0 for _ in range(n): x = int(input()) if 256 <= x < 4096 and x % 16 == 15: count += 1 print(count)$$n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 256 <= x < 4096 and x % 16 == 15:
count += 1
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только последнюю цифру F, но не проверяют, что запись состоит ровно из трёх шестнадцатеричных цифр.
Используют деление на 15 вместо проверки остатка от деления на 16.
Ошибочно включают числа, равные 4096 или больше.
Забывают вывести только итоговое количество.