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