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