求N!(N<=10000)
https://cn.vjudge.net/problem/10784/origin
#include<bits/stdc++.h>
using namespace std;
const int mod=1e5+7;
int a[mod];
int main(){
int n;
while(cin>>n){
memset(a,0,sizeof(a));
int j=0,len=0,ans=0;
a[0]=1;///0的阶乘为1
for(int i=1;i<=n;i++){
for(int ii=0;ii<=len;ii++){
int temp=ans+a[ii]*i;///依次求出最低位、次低位……的值(ans代表进位值)
a[ii]=temp%10;
ans=temp/10;
if(ans!=0&&ii==len)
len++;///进位
}
}
for(int i=len;i>=0;i--)
cout<<a[i];
cout<<endl;
}
return 0;
}