什么是函数的递归:
在调用函数的过程中又出现直接或间接地调用该函数自己本身,称为函数的递归。
什么意思呢?我们以一道题为例:求n的阶乘。
int Fac(int n)//n的阶乘
{
int sum=0;
if (n == 0||n==1)//1的阶乘和0的阶乘都为1,特殊值处理
{
sum = 1;
}
else
{
sum =n* Fac(n - 1);
}
return sum;
}
int main()
{
printf("%d", Fac(5));//这里按5的阶乘为例
return 0;
}
1.将5传进去后,5不等于0和1,走else语句,sum=5*Fac(5-1),再进入Fac函数,sum=5*4*Fac(4-1),再进入Fac函数,sum=5*4*3*Fac(3-1),直到触发n==0||n==1,此时,sum=5*4*3*2*1,正好是5的阶乘。
结果:
再看一道例题,可以自己先写一下。
代码和流程图如下:
运行到tmp=Age(n-1)+2时,再进入Age()函数,直到n=1。