Введение :

В информатике рекурсия — это метод решения проблемы, при котором решение зависит от решений более мелких экземпляров той же проблемы. [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...
}