Решение: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 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 или больше.
Забывают вывести только итоговое количество.