首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求圆周率?解决方案

2012-03-01 
求圆周率? longa10000,b,c2800,d,e,f[2801],gmain(){for(b-c)f[b++]a/5for(d0,gc*2c-14,print

求圆周率?

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);
}  
麻烦那位讲解以下?谢谢!

[解决办法]
改成了这样,应该看得明白程序了,但是还是没懂算法,大家帮忙看看
main()
{
long a=10000,b=0,c=2800,d=0,e=0,f[2801],g=0;
for(;b-c!=0;)
{
f[b++]=a/5;
}

for(;g=c*2;)
{
d=0;
for(b=c;b> 0;)
{
d+=f[b]*a;
f[b]=d%--g;
d/=g--;
--b;
if(b!=0)
{
d*=b;
}
}
c-=14;
printf( "%.4d ",e+d/a);
e=d%a;
}
}
[解决办法]
f(1)=1
f(n+1)=f(n)*n/(2*n+1)
PI/2=f(1)+f(2)+f(3)+.....+f(n) n-> 无穷大。

热点排行