C语言的递归调用怎么理解,更容易学?我看不懂呢。求高人指教!

2025-03-20 21:50:56
推荐回答(4个)
回答1:

递归的结构其实很简单,两部分组成
1、结束递归的条件,要不然会无限递归下去
2、就是递归的公式,以什么样的方式调用自己

还有比较复杂的递归,就是双线和多线递归
这个就是a调用b,b再调用c,c再调用a,等等的方式多个函数之间的互相调用
每个函数都至少有这两部分组成

回答2:

一个函数自己调用自己。

通常最简单的例子是:计算阶乘,即 5! = 5*4*3*2*1

int factorial(int n) {
if (n == 0 || n == 1) {
return 1; // base condition
} else {
return (n * factorial(n-1)); // recursive call
}

}

把自己想象成电脑,试一试 factorial(5)
就会发现 return 5*4*3*2*1

Remark:
递归函数计算往往比较慢,因太频繁地自己调用自己,很多情况下会有更好的算法哦。

回答3:

重复调用本身(求阶乘就是不停滴调用本身函数,最后逐个返回)

回答4:

从阶乘那开始理解,类似阶乘