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