大数阶乘1042
#include<iostream> #include<iomanip> using namespace std; int main(){ int n; while(cin>>n){ int i,j,k=0,a[10000]; a[0]=1; for(i=1;i<=n;i++){ int x=0; for(j=0;j<=k;j++){ a[j]=a[j]*i+x; x=a[j]/100000; a[j]%=100000; } if(x!=0){ k++; a[k]=x; } } cout<<a[k]; for(i=k-1;i>=0;i--) cout<<setw(5)<<setfill('0')<<a[i]; cout<<endl; } return 0; }