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