至少对我来说是这样。。。
看到一段神奇的代码。。。
http://blog.csdn.net/liangbch/article/details/3230428
#include <stdio.h> long long a[10010]= {0},n,i,c,len; int main() { int N; while(scanf("%d",&N)!=EOF){ a[0]=1LL; for(n=N,len=0;n>1;((a[i]=c)>0)?(len++,n--):n--) for(c=0,i=0;i<=len;i++){ a[i]=(c+=a[i]*n)%10000; c/=10000; } for( printf("%d",a[len--]); len>=0; len--) printf("%04d",a[len]); printf("\n"); } }