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