Задание №16 — Алгоритмы и программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 7. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
487 559 895 3031 4127 0 | 3 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо проанализировать каждое введённое число на соответствие двум условиям, сформулированным для восьмеричной системы счисления.
1. Условие четырёхзначности в восьмеричной системе.
Число является четырёхзначным в восьмеричной системе счисления, если оно находится в диапазоне от до .
Вычислим эти значения:
Следовательно, число должно удовлетворять неравенству: .
2. Условие окончания на цифру 7 в восьмеричной системе.
Последняя цифра числа в любой системе счисления с основанием — это остаток от деления этого числа на .
Значит, для восьмеричной системы нам нужно проверить условие: .
3. Алгоритм решения:
— Создаём переменную-счётчик и обнуляем её.
— Организуем цикл чтения чисел до тех пор, пока не будет введён 0.
— Внутри цикла для каждого числа проверяем: (оно ) И (оно ) И (остаток от деления на 8 равен 7).
— Если все условия выполняются, увеличиваем на 1.
— После окончания цикла выводим значение .
Разберём пример из условия:
Числа в примере: 487, 559, 895, 3031, 4127.
1) : меньше 512. Не подходит.
2) : . Проверим остаток: (остаток 7). Подходит (1).
3) : . Проверим остаток: (остаток 7). Подходит (2).
4) : . Проверим остаток: (остаток 7). Подходит (3).
5) : больше 4095. Не подходит.
Итого: 3 числа.
Ответ: 3
Источник: ФИПИ