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