Введение :
В информатике рекурсия — это метод решения проблемы, при котором решение зависит от решений более мелких экземпляров той же проблемы. [1] Такие проблемы обычно можно решить путем итерации. , но для этого необходимо идентифицировать и индексировать меньшие экземпляры во время программирования. Наоборот, рекурсия решает такие рекурсивные проблемы с помощью функций, которые вызывают сами себя из своего собственного кода. Этот подход можно применять ко многим типам задач, и рекурсия является одной из центральных идей компьютерных наук.
II)Что такое базовое условие в рекурсии?
В рекурсивной программе предоставляется решение базового случая, а решение большей проблемы выражается в терминах меньших проблем.
int fact(int n) { if (n < = 1) // base case return 1; else return n*fact(n-1); }
В приведенном выше примере определен базовый случай для n ‹ = 1, и большее значение числа может быть решено путем преобразования в меньшее до тех пор, пока не будет достигнут базовый случай.
III) В чем разница между прямой и косвенной рекурсией?
Функция fun называется прямой рекурсией, если она вызывает ту же функцию fun. Функция fun называется косвенно-рекурсивной, если она вызывает другую функцию, скажем, fun_new, а fun_new прямо или косвенно вызывает fun. Разница между прямой и косвенной рекурсией показана в таблице 1.
// An example of direct recursion void directRecFun() { // Some code.... directRecFun(); // Some code... } // An example of indirect recursion void indirectRecFun1() { // Some code... indirectRecFun2(); // Some code... } void indirectRecFun2() { // Some code... indirectRecFun1(); // Some code... }