Описание задачи
Программа принимает на вход число и рекурсивно определяет, четное это число или нечетное.
Решение задачи
- Принимаем число и записываем его в переменную.
- Передаем это число в качестве аргумента в рекурсивную функцию.
- Определяем базовое условие рекурсии (т.е., базу рекурсии), при котором решение задачи тривиально и не требует дальнейшего обращения функции к самой себе. В данном случае значение переменной должно быть меньше
2
. Если это условие выполняется, то работа функции завершается. - В противном случае мы опять рекурсивно вызываем нашу функцию, уменьшив значение переменной на
2
. - В конце концов работа функции завершается, и по ее результату (
True
илиFalse
) мы определяем четность числа. - Выводим конечный результат на экран.
- Конец.
Исходный код
Ниже дан исходный код для программы для рекурсивного определения четности числа. Результаты работы программы также даны ниже.
def check(n): if (n < 2): return (n % 2 == 0) return (check(n - 2)) n = int(input("Введите число:")) if (check(n) == True): print("Число четное!") else: print("Число нечетное!")
Объяснение работы программы
- Пользователь вводит число и оно записывается в переменную
n
. - Число, записанное в переменную
n
, передается в качестве аргумента в рекурсивную функциюcheck()
, которая в коде написана самой первой. - Базой рекурсии является условие
n < 2
. При выполнении данного условия функция прекращает свою работу и возвращает либоTrue
, либоFalse
. - В противном случае, функция вызывается снова с аргументом
n - 2
. - Когда функция завершает свою работу и возвращает результат, мы на его основе определяем, четное это число или нечетное. Если функция возвращает
True
, то число четное, еслиFalse
, то нечетное. - Выводим результат на экран.
Результаты работы программы
Пример 1: Введите число:124 Число четное! Пример 2: Введите число:567 Число нечетное!