立即学习:https://edu.youkuaiyun.com/course/play/8088/173213?utm_source=blogtoedu
1. 递归函数
在函数体内调用自己,执行递归函数将反复调用其自身,每调用一次就进入了一个新层;
使用递归函数需要设置一个出口,如下程序中n==1时即为递归函数的出口
int jiecheng(int n)
{
int result;
if (n == 1)
return 1;
else
{
result = jiecheng(n - 1)*n;
}
return result;
}
int main()
{
int a,result;
printf("输入需要计算的阶乘数:");
scanf_s("%d", &a);
result = jiecheng(a);
printf("%d的阶乘=%d", a, result);
}
2. 递归函数优缺点
优点:代码少,简洁,精妙
缺点:不好理解;如果调用层次太多,调用栈(内存)可能会溢出;深层次调用,需要保存很多数据,效率和性能不高
3.递归函数的直接和间接调用
直接调用:调用递归函数f时,f函数又调用自己
间接调用:调用f1函数时,调用f2函数,然后f2函数过程中又调用f1函数