Задание №16 — Алгоритмы и программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 5. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
485 557 893 3029 4125 0 | 3 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число на соответствие двум условиям, связанным с его представлением в восьмеричной системе счисления.
Шаг 1. Разбор условий задачи.
1. Число в восьмеричной системе должно быть четырёхзначным.
Минимальное четырёхзначное число в восьмеричной системе — это . Переведём его в десятичную систему: .
Максимальное четырёхзначное число в восьмеричной системе — это . Переведём его в десятичную систему: .
Следовательно, число должно находиться в диапазоне: .
2. Число в восьмеричной системе должно оканчиваться на цифру .
Последняя цифра в любой системе счисления с основанием — это остаток от деления числа на . Значит, остаток от деления нашего числа на должен быть равен : .
Шаг 2. Алгоритм решения.
Мы будем считывать числа в цикле до тех пор, пока не встретим . Для каждого числа проверим выполнение обоих условий одновременно (используя логическое "И"). Если условия верны, увеличим счётчик на .
Шаг 3. Реализация на языке программирования (Python).
count = 0
x = int(input())
while x != 0:
if 512 <= x <= 4095 and x % 8 == 5:
count += 1
x = int(input())
print(count)
Шаг 4. Проверка на примере.
Разберём числа из примера (хотя в примере даны числа, которые не всегда попадают в диапазон четырёхзначных восьмеричных, логика работы программы остаётся прежней):
- : — Ложь. (В примере, вероятно, опечатка в условии или данных, но мы строго следуем правилу перевода систем счисления. Если рассматривать пример буквально, то — это трёхзначное число).
- Однако, если в примере подразумевается, что числа , , , , — это десятичные числа, проверим их:
1) (3 знака, не подходит).
2) (4 знака, оканчивается на 5 — подходит).
3) (4 знака, оканчивается на 5 — подходит).
4) (4 знака, оканчивается на 5 — подходит).
5) (5 знаков, не подходит).
Итого: числа.
Ответ: 3
Источник: ФИПИ