递归函数是指一个函数的函数体中直接调用或间接调用了该函数本身的函数
原理:通过调用自身,一层一层的向下递归,直到满足结束条件,再一层一层的向上返回返回值,直到求出最终结果。
1、直接调用:
int func()
{
函数体;
func();
return 0;
}
2.、间接调用:
int func1()
{
函数体;
func2();
return 0;
}
int func2()
{
函数体;
func1();
return 0;
}
注意:递归函数一定要在函数体内给定结束条件,否则函数将进入死循环,直到栈溢出
例:求一个数的阶乘,例如5!
int func(int x)
{
if(x==1) //判断x是否为1
{
return 1; //如果为1,其阶乘为1
}
else
{
//不为1,其阶乘=该数*(该数-1的阶乘),通过函数一定向下递归到1,再向上一步一步的返回值
return x*fun(x-1);
}
}
int main
{
int result= func(5); //定义变量result接收函数的返回值
}