普通递归与尾递归求解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.csdn.net/cup160828/article/details/82115516