题目描述
给定一个整数N(0≤N≤10000),求取N的阶乘
输入描述:
多个测试数据,每个测试数据输入一个数N
输出描述:
每组用一行输出N的阶乘
示例1
输入
复制1 2 3
1 2 3
输出
复制1 2 6
1 2 6
/*Keep on going Never give up*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pi acos(-1.0)
inline int read()
{
int x=0,k=1; char c=getchar();
while(c<'0'||c>'9'){if(c=='-')k=-1;c=getchar();}
while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+(c^48),c=getchar();
return x*k;
}
const int maxn=1e5+10;
int m,n,ans[maxn];
//vector<int>ans;
signed main(){
while(cin>>n){
// ans.clear();
memset(ans,0,sizeof(ans));
int j=0;
ans[0]=1;
for(int i=2;i<=n;i++){
int tep=0,t=0,tt=0;
for(j=0;j<40000;j++){
tep=ans[j]*i+tt;
t=tep%10;tt=tep/10;
ans[j]=t;
}
if(tt) ans[j]=tt;
}int p=0;
for(int i=40000;i>=0;i--) if(ans[i]) {p=i;break;
}
for(int i=p;i>=0;i--) cout<<ans[i];
cout<<endl;
}
}