今后继续整理算法并写出自己的理解和备注。 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;
}