求一个圆周率C语言程序

在C语言的许可范围内,计算圆周率。并能让用户输入查看第几位的数字。
比如输入13,就是看小数点后第13位;输入10000,就是看小数点后10000位的数字。当然运行得越快越好。

似乎有点难,希望有人能来回答,最好的答案我会加分的。

我也看不明白
#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位。它能求的更精确吗?改哪几个变量?
这是近似算法还是一种求派的精确算法?
我看不明白,谁能解释一下?

参考资料:http://zhidao.baidu.com/question/47106674.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-08
#include < stdio.h>
long a=10000, b, c=2800, d, e, f[2801], g;
main(){
while(b-c!=0)
{ f[b]=a/5;
b++;
}
d=0;
g=c*2;
while(g!=0)
{
b=c;
d+=f[b]*a;
f[b]=d%--g;
d=d/g--;
--b;
while(b!=0)
f[b]=d%--g;
d=d/g--;
--b;
}
c-=14;
printf("%.4d",e+d/a);
e=d%a;
g=c*2;
}
}
第2个回答  2019-12-24
#include
main()
{
int
i,j=0;
double
pa=0;
for(i=1;i<400;i=i+2)
{
if(j==0)
{pa=pa+1.0/i;
j=1;
}
else
{pa=pa-1.0/i;
j=0;
}
}
pa=pa*4;
printf("%f\n",pa);
}
求圆周率的近似值
纯c语言
第3个回答  2019-03-24
#include
<
stdio.h>
long
a=10000,
b,
c=2800,
d,
e,
f[2801],
g;
main(){
while(b-c!=0)
{
f[b]=a/5;
b++;
}
d=0;
g=c*2;
while(g!=0)
{
b=c;
d+=f[b]*a;
f[b]=d%--g;
d=d/g--;
--b;
while(b!=0)
f[b]=d%--g;
d=d/g--;
--b;
}
c-=14;
printf("%.4d",e+d/a);
e=d%a;
g=c*2;
}
}
第4个回答  2008-03-25
我给你个网址,你自己去看看就明白了。

参考资料:

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网