普通递归与尾递归求解n!
#include<cstdio>
//求解n!
//递归方法
int f(int n)
{
if(n==1)return 1;
else return f(n-1)*n;
}
//尾递归方法
int f_w(int n,int result) //n:表示是n的阶乘 result:部分积
{
if(n==1) return result;
else
return f_w(n-1,result*n);
}
int main()
{
int n=5;
printf("%d\n",f(n));
printf("%d",f_w(n,1));
return 0;
}

参考:
https://blog.youkuaiyun.com/cup160828/article/details/82115516
https://blog.youkuaiyun.com/pango_cs/article/details/40170401
本文通过C++代码示例,详细对比了普通递归与尾递归两种求解阶乘的方法。普通递归直观但可能因深度过深导致栈溢出,而尾递归通过传递额外参数优化,能有效避免此问题,更适用于深度递归场景。
3137

被折叠的 条评论
为什么被折叠?



