Задание №16 — Алгоритмы и программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 2. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности N (1 ≤ N ≤ 1000), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
5 162 274 882 946 4114 | 3 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо проанализировать каждое число из последовательности и проверить, удовлетворяет ли оно двум условиям в шестнадцатеричной системе счисления: число должно быть трёхзначным и оканчиваться на цифру .
Шаг 1. Разбор условий.
1. Чтобы число в шестнадцатеричной системе было трёхзначным, оно должно находиться в диапазоне от до . Переведём эти границы в десятичную систему:
Минимальное трёхзначное число: .
Максимальное трёхзначное число: .
Следовательно, наше число должно удовлетворять условию: .
2. Чтобы число в шестнадцатеричной системе оканчивалось на , остаток от его деления на должен быть равен . Это проверяется условием: .
Шаг 2. Алгоритм решения.
1. Сначала считываем количество чисел .
2. Создаём переменную-счётчик (например, count) и обнуляем её.
3. В цикле раз считываем очередное число .
4. Для каждого проверяем: если И И , то увеличиваем счётчик на .
5. После завершения цикла выводим значение счётчика.
Шаг 3. Проверка примера.
Даны числа: .
- : (не трёхзначное в -ричной системе). Нет.
- : . Проверим остаток: . Остаток . Да (1).
- : . Проверим остаток: . Остаток . Да (2).
- : . Проверим остаток: . Остаток . Да (3).
- : (уже четырёхзначное в -ричной системе). Нет.
Итого: .
Пример реализации на языке Python:
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 256 <= x <= 4095 and x % 16 == 2:
count += 1
print(count)
Ответ: 3
Источник: ФИПИ