高精度阶乘
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn=50000; int s[maxn]; int n; int main() { while(cin>>n) { int i,j,t,k; memset(s,0,sizeof(s)); s[0]=1; int c,l=1; if(n==0||n==1) printf("1"); else { for(i=2;i<=n;i++) { c=0; for(j=0;j<l;j++) { int tem=s[j]*i+c; s[j]=tem%10; c=tem/10; } while(c) { s[l++]=c%10; c/=10; } } for(i=l-1;i>=0;i--) printf("%d",s[i]); } printf("\n"); } return 0; }