一个正整数的阶乘,是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
有两种思路可求解,一种递归方法,另一种循环。
下面看递归:
#include <iostream>
#include <string>
using namespace std;
int jiecheng(int a)
{
int res;
if (a==1)
res=1;
while(a>1)
return a*jiecheng(a-1);
}
int main()
{
cout<<"输入一个整数: "<<endl;
int a;
cin>>a;
int res=jiecheng(a);
cout<<"结果: "<<res<<endl;
return 0;
}
第二种:循环
#include <iostream>
#include <string>
using namespace std;
int jiecheng(int a)
{ int s=1;
while (a>1)
{
s= s*a;
a-=1;
}
return s;
}
int main()
{
cout<<"输入一个整数: "<<endl;
int a;
cin>>a;
int res=jiecheng(a);
cout<<"结果: "<<res<<endl;
return 0;
}
结果:
输入一个整数:
12
结果: 479001600