Шешімі: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 3. На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке. Программа должна напечатать только одно число — количество искомых элементов последовательности.
| Входные данные | Выходные данные |
|---|---|
| 5 163 275 883 947 4115 | 3 |
Шешім по шагам
4 қадамВ шестнадцатеричной системе счисления трёхзначные числа начинаются с $16^2 = 256$ и заканчиваются числом $16^3 - 1 = 4095$.
$$256 \leq x \leq 4095$$Последняя цифра шестнадцатеричной записи числа определяется остатком от деления на $16$. Чтобы последняя цифра была равна 3, остаток должен быть равен 3.
$$x \bmod 16 = 3$$Последовательно считываем все $N$ чисел и увеличиваем счётчик, если выполнены оба условия.
$$count = count + 1$$Один из возможных нұсқа программы на Python:
$$n = int(input()) count = 0 for _ in range(n): x = int(input()) if 256 <= x <= 4095 and x % 16 == 3: count += 1 print(count)$$Программа должна проверить для каждого числа условия $256 \leq x \leq 4095$ и $x \bmod 16 = 3$, затем вывести количество подходящих чисел.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только остаток от деления на 16 и не проверяют трёхзначность жазбалар.
Используют диапазон до $4096$, хотя число $4096$ уже является четырёхзначным в шестнадцатеричной системе.
Путают основание системы счисления 16 с основанием 10.
Выводят сами подходящие числа вместо их количества.