首页 > 编程资源分享区 > C/C++源代码共享 > 一个很牛的计算pi的c程序[偶啥也不懂]
2006
01-04

一个很牛的计算pi的c程序[偶啥也不懂]




#include <stdlib.h>  
#include <stdio.h>  

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*a,f=d%–g,d/=g–,–b;d*=b);  
}  

计算结果:  
314159265358979323846264338327950288419716939937510582097494 459230781640628620899862803482534211706798214808651328230664 709384460955058223172535940812848111745028410270193852110555 964462294895493038196442881097566593344612847564823378678316 527120190914564856692346034861045432664821339360726024914127 372458700660631558817488152092096282925409171536436789259036 001133053054882046652138414695194151160943305727036575959195 309218611738193261179310511854807446237996274956735188575272 489122793818301194912983367336244065664308602139494639522473 719070217986094370277053921717629317675238467481846766940513 200056812714526356082778577134275778960917363717872146844090 122495343014654958537105079227968925892354201995611212902196 086403441815981362977477130996051870721134999999837297804995 10597317328160963185  


一个很牛的计算pi的c程序[偶啥也不懂]》有 7 条评论

  1. yeshi 说:

    d=0,

    d/a

    ??

  2. yeshi 说:

    抱歉,刚才看错了,以为是a=0了。

    d+=f*a,f=d%–g

    g的初始值为0吧,–g不就成了负数了吗?

    printf(“%.4d”,e+d/a),e=d%a第一次打印难道不是0.0000吗?

    小菜鸟一个,大家见笑了,不知有谁可以详细解释一下。

  3. VC爱好者 说:

    自己上机运行一下看效果,就知道有没有错了。

  4. coolker 说:

    (g的初始值为0吧,–g不就成了负数了吗?不是的。)

    g=c*2

    for(;d=0,g=c*2;c-=14,printf(“%.4d”,e+d/a),e=d%a) 
     for(b=c;d+=f*a,f=d%–g,d/=g–,–b;d*=b); 
    第一个for的执行顺序是,先初始值,这里没有,然后执行d=0,g=c*2,接着才去执行for(b=c;d+=f*a,f=d%–g,d/=g–,–b;d*=b);  所以这里的g应该等于c*2了,所以g就不是为0了。

    这段计算π的程序,真的写得不错,不过写法有点过份简单了,简直就是出自高手之手,初学者很不容易读懂。 有哪个兄弟数过计算了几位吗?

  5. meqyj 说:

    直接拿数组名来计算,并赋其值,是什么意思???

  6. tashibajie 说:

    Cry我写的初学程序调了一下午都不知道怎么问题,算不出来。。各位大侠帮我看看哪里错了吧!

  7. 白色鸟 说:

    强大盗走。

留下一个回复