一、什么是递归
在C语言中,递归就是函数自己调用自己
上面这个就是一个简单的递归,但是代码最终也会陷入死循环,导致栈溢出。
二、递归的举例
1.求n的阶乘
我们知道的n的阶乘的公式为:n!=n*(n-1)!
根据函数可令n==0时,n的阶乘为1,其余的用上面公式计算
2.顺序的打印整数的每一位
输入:1234 输出;1 2 3 4
输入;987 输出:9 8 7
1234%10就能得到4,1234/10得到123,123%10得到3,123/10得到12,12%10得到2,12/10得到1
pr(1234)就可以拆分成两步pr(1234/10)+printf(1234%10)
3.递归与迭代
像举例1,这个题很可能误用递归的方法,这个方法在计算大数据的情况下会出现错误
- 运算速度很慢
- 可能会超出函数栈帧
所以我们遇到这些题就要使用迭代的方法(通常是循环的方式)
这样既速度得到了提升,也不会存在超出范围的错误了