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