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