#include<stdio.h>
long a=10000,b=0,c=2800,d,e,f[2801],g;
void main()
{
for(;b!=c;)
{
f[b]=a/5;
b++;
}
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);
}
这个算法的精妙之处在于利用泰勒展开式Pi=4*arctg 1=对n求和:( 16/5^(2*n-1)-4/239^(2*n-1))/(2*n-1)
如果没有好好学高数,怕是看不懂了。