Задание №16 — Алгоритмы и программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру E. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
174 286 894 958 4126 0 | 3 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно считывать числа и проверять их на соответствие двум условиям: трёхзначность в шестнадцатеричной системе счисления и окончание на цифру .
Шаг 1. Разбор условий.
1. Трёхзначность в 16-ричной системе. Число является трёхзначным в шестнадцатеричной системе, если оно находится в диапазоне от до . Переведём эти границы в десятичную систему:
Нижняя граница: .
Верхняя граница: .
Следовательно, число должно удовлетворять условию: .
2. Окончание на цифру E. Последняя цифра в любой системе счисления — это остаток от деления числа на основание этой системы. Цифра в шестнадцатеричной системе соответствует десятичному числу . Значит, остаток от деления числа на должен быть равен . Условие: .
Шаг 2. Алгоритм решения.
1. Создаём переменную-счётчик и обнуляем её.
2. Организуем цикл чтения чисел до тех пор, пока не встретим .
3. Внутри цикла для каждого введённого числа проверяем: (оно ) И (оно ) И (остаток от деления на равен ).
4. Если все условия верны, увеличиваем на .
5. После окончания цикла выводим значение .
Шаг 3. Проверка на примере.
Рассмотрим числа из примера:
- : (не трёхзначное в 16-ричной системе).
- : . Проверим остаток: (ост. ). Подходит! ().
- : . Проверим остаток: (ост. ). Подходит! ().
- : . Проверим остаток: (ост. ). Подходит! ().
- : (уже четырёхзначное в 16-ричной системе).
Итого: числа.
Пример реализации на языке Python:
count = 0
x = int(input())
while x != 0:
if 256 <= x <= 4095 and x % 16 == 14:
count += 1
x = int(input())
print(count)
Ответ: 3
Источник: ФИПИ