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