普通递归与尾递归求解n!

普通递归与尾递归求解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

https://blog.csdn.net/pango_cs/article/details/40170401

https://blog.csdn.net/fall221/article/details/9156753

发布了146 篇原创文章 · 获赞 60 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/OpenStack_/article/details/103707166