Задание №16 — Алгоритмы и программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 5. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
165 277 885 949 4117 0 | 3 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число на соответствие двум условиям в шестнадцатеричной системе счисления: трёхзначность и окончание на цифру 5.
1. Разберём условие трёхзначности в 16-ричной системе.
Минимальное трёхзначное число в шестнадцатеричной системе — это . Переведём его в десятичную систему: .
Максимальное трёхзначное число — это . Следующее за ним число — , которое равно .
Следовательно, число является трёхзначным в 16-ричной системе, если оно находится в диапазоне: .
2. Разберём условие окончания на цифру 5.
Последняя цифра числа в любой системе счисления с основанием — это остаток от деления этого числа на .
Значит, чтобы число в шестнадцатеричной системе оканчивалось на 5, остаток от его деления на 16 должен быть равен 5. На языке программирования (например, Python) это записывается как x % 16 == 5.
3. Алгоритм решения:
— Создаём переменную-счётчик count и приравниваем её к 0.
— Организуем цикл чтения чисел до тех пор, пока не будет введён 0.
— Внутри цикла для каждого числа проверяем составное условие: (x >= 256) and (x < 4096) and (x % 16 == 5).
— Если условие выполняется, увеличиваем count на 1.
— После окончания цикла выводим значение count.
4. Проверим пример из условия:
— Число 165: — Ложь. (Не подходит)
— Число 277: — Истина. Проверяем остаток: . Остаток 5. (Подходит, 1-е число)
— Число 885: — Истина. Проверяем остаток: . Остаток 5. (Подходит, 2-е число)
— Число 949: — Истина. Проверяем остаток: . Остаток 5. (Подходит, 3-е число)
— Число 4117: — Ложь. (Не подходит)
Итого: 3 числа.
Ответ: 3
Источник: ФИПИ