如题所述
1、PI 的值可以通过以下公式计算出来,
π/4=1-1/3+1/5-1/7……
编写循环程序,当这种计算方法所得到的偏差小于0.000001时停止计算,并输出PI的值及所需要计算的项数。
2、例程:
double s = 0;//面积double pi = 0;//圆周率
double d=200;//直径(值越大圆周率越精确)
double r = d/2;//半径
for(int i=1;i<=d;i++){
for(int j=1;j<=d;j++){
if((i-r)*(i-r)+(j-r)*(j-r)<=r*r){
s++;
}
}
}
pi = s/(r*r);
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-05-19
随便baidu下就有;
最佳答案
#include <stdio.h>
long a=10000,b,c=2800,d,e,f[2801],g;
void main()
{
for(;b-c;) f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%04d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}
这个问题我问过。
能算800位,我给的网址是我问的,回答里有解释,和能算1000位的优化算法,很好的。
参考资料:
0回答者: 死人3 - 见习魔法师 三级本回答被提问者采纳
最佳答案
#include <stdio.h>
long a=10000,b,c=2800,d,e,f[2801],g;
void main()
{
for(;b-c;) f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%04d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}
这个问题我问过。
能算800位,我给的网址是我问的,回答里有解释,和能算1000位的优化算法,很好的。
参考资料:
0回答者: 死人3 - 见习魔法师 三级本回答被提问者采纳