题目描述
输入一个正整数N,输出N的阶乘。
输入描述:
正整数N(0<=N<=1000)
输出描述:
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
示例1
输入
4 5 15
输出
24 120 1307674368000
/*普通的阶乘求法还可以用递归。
#include<iostream>
using namespace std;
long long jiecheng(int n)
{
long long ans=1;
for(int i=1;i<=n;i++)
{
ans*=i;
}
return ans;
}
int main()
{
int n;
while(cin>>n)
{
cout<<jiecheng(n)<<endl;
}
}*/
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int ans[100000];
int size=0;
ans[size++]=1;
for(int i=2;i<=n;i++)
{
int carry=0;
for(int j=0;j<size;j++)
{
int t=(i*ans[j]+carry)/10;
ans[j]=(i*ans[j]+carry)%10;
carry=t;
}
while(carry)
{
ans[size++]=carry%10;
carry/=10;
}
}
for(int i=size-1;i>=0;i--)
cout<<ans[i];
cout<<endl;
}
return 0;
}