您的位置:首页 > 编程语言 > C语言/C++

C语言经典算法(七)——递归实现阶乘算法的两种方法

2018-01-05 19:47 423 查看
今后继续整理算法并写出自己的理解和备注。 C++实现的:递归实现阶乘算法N!

1、 递归实现n!

<1> 题目描述:输入n值,求解n的阶乘

<2> 方法一:累乘法

<3> 方法二:递归法

源码:

一、 递归实现n!

1、 累乘法

#include<iostream>
using namespace std;
#define UL unsigned long
UL Factorial(UL n)
{
int sum = 1;
for(int i=1; i<=n; ++i)//数学概念
{
sum *= i;
}
return sum;
}
void main()
{
UL n;
cout<<"请输入n:>";
cin>>n;
cout<<n<<"的阶乘为:>"<<Factorial(n)<<endl;
}


2、 递归法

#include<iostream>
using namespace std;
#define UL unsigned long
UL Factorial(UL n)
{
if(n == 0)
return 1;
else
return n * Factorial(n-1);//递归有临界,不能溢出调用栈,则可以直接使用递归,代码简单但效率不会很高
}
void main()
{
UL n;
cout<<"请输入n:>";
cin>>n;
cout<<n<<"的阶乘为:>"<<Factorial(n)<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法
相关文章推荐