递归
递归的本质为函数内部在适当的时候调用自身
递归条件:
1.遵循一定的规律
2.有一个结束递归的条件
递归本质过程:< 类似嵌套函数的调用,所不同的是f(1)、f(2)、f(3)、f(4)代码相同 >
函数f(1)调用函数f(2)
函数f(2)调用函数f(3)
函数f(3)调用函数f(4)
当f(4)不满足条件<即遇到结束递归的条件>
f(4)函数结束,执行f(3)函数未结束的内容
f(3)函数结束,执行f(2)函数未结束的内容
f(2)函数结束,执行f(1)函数未结束的内容
f(1)函数结束
递归效率:每次递归调用都拥有自己的变量集合.占用内存多.
先计算 n! = n*(n-1)!
(n-1)! = (n-1) * (n-2)!
(n-2)! =(n-2) * (n-3)!
.........
规律: < arc
= n * f(n-1) >
条件: <
n > 0 >
求解n!
C中递归函数必然会使用判断语句
递归函数在需要编写时定义函数的出口,否则栈会溢出
递归函数是一种分而治之的思想