Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности натуральных десятичных чисел определяет количество элементов, запись которых
в системе счисления с основанием 7 оканчивается цифрой 2. Если среди входных данных таких элементов нет, программа должна вывести «NO».
Программа получает на вход натуральные десятичные числа,
не превышающие 30 000, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом 0 (0 – признак окончания ввода, в последовательность не входит).
Программа должна вывести одно число – количество десятичных чисел (элементов последовательности), запись которых в 7-ричной системе счисления оканчивается цифрой 2, или «NO», если среди входных данных таких элементов нет.
Пример работы программы
Входные данные | Выходные данные |
37 22 16 25 42 0 | 2 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно считывать числа до тех пор, пока не встретится число . Для каждого числа нужно проверить условие: оканчивается ли его запись в системе счисления с основанием на цифру .
Шаг 1. Как определить последнюю цифру в системе счисления с основанием ?
В любой позиционной системе счисления последняя цифра числа — это остаток от деления этого числа на основание системы. Чтобы узнать последнюю цифру числа в 7-ричной системе, нам нужно найти остаток от деления десятичного числа на .
Условие задачи: последняя цифра в 7-ричной записи равна . На языке программирования это записывается как: .
Шаг 2. Алгоритм решения:
1. Создадим переменную-счётчик , в которой будем хранить количество подходящих чисел. Изначально .
2. Организуем цикл чтения чисел. Так как мы не знаем заранее количество чисел, используем цикл while, который будет работать, пока введённое число не равно .
3. Внутри цикла проверяем: если остаток от деления текущего числа на равен , то увеличиваем на .
4. После завершения цикла проверяем значение . Если оно больше , выводим это значение. Если остался равен , значит, подходящих чисел не было, и мы выводим «NO».
Шаг 3. Пример работы на числах из условия:
- Число : (так как ). Подходит. .
- Число : . Не подходит.
- Число : (так как ). Подходит. .
- Число : . Не подходит.
- Число : . Не подходит.
- Число : конец ввода.
Итоговое значение .
Программная реализация (на языке Python):
count = 0
x = int(input())
while x != 0:
if x % 7 == 2:
count += 1
x = int(input())
if count > 0:
print(count)
else:
print("NO")
Ответ: 2
Источник: ФИПИ