递归的概述
递归是数学领域中概念在程序设计中的应用
递归是一种强有力的程序设计方法
递归的本质为函数内部在适当的时候调用自身
递归的底层实现本质是用栈不断压栈推进运算过程,直到问题可以回溯求解。
递归函数
C语言中递归函数由2部分组成:
- 递归点--以不同参数调用自身
- 出口--不再递归调用
例:用递归求解阶乘函数
#include <stdio.h>
int func(int x)
{
if( x > 1 )
{
return x * func(x - 1);
}
else
{
return 1;
}
}
int main()
{
printf("x! = %d\n", func(4));
return 0;
}
小结
C语言中的递归函数必然会使用判断语句
递归函数在需要编写的时候定义函数的出口,否则栈会溢出(无限递归,10000次递归压栈,栈空间溢出)
递归函数是一种分而治之的思想