Skip to content

2.6.4 递归

2.6.4 递归

递归是函数的一个重要应用方式

什么是递归?

说白了,就是函数调用自己

什么情况下会用到递归?

很简单

当一个问题可以被近似重复的过程解决时,那么这个问题就可以通过递归解决

举一个很简单的了例子

大家应该都学过阶乘

我们分析一下

1! = 1 2! = 21 3! = 321 4! = 4321 = 4*3!

想必大伙不难发现:

(n+1)! = (n+1)*n! 也就是说,只要我们能知道这一次的结果,那么下一次的结果也就可以轻易得到

那么这是不是说,我们可以设计一个递归函数来轻松的解决这个问题

答案是肯定的

int factorial(int n)
{
    if (n == 1)
    {
        return 1;
    }
    else
    {
        return n * factorial(n - 1);
    }
}