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