long a=10000,b,c=2800,d,e,f[2801],g; main() { for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) for(b=c;d+=f[b]*a;f[b]=d%--g,d/=g--,--b;d*=b); scanf("%s"); }
http://zhidao.baidu.com/link?url=OzF5i8JDy88FnDOvCVCzm8O0AlbGZBviJ5vqpXEAVqfPmEc3n0fI_TdJe0l-Xb8HpLfMuoO1Nta3xWJ482gMia