本文目录一览:
C语言编程题:用计算机计算圆周率到小数点后一百位。
有公式 π/4=1-1/3+1/5-1/7+... 可据此编写程序。 我只做到了8位,至于还有没有其他的计算公式,我也不清楚了。
#includestdio.h
#includemath.h
int main()
{ int sign=1;
double pi=0.0, n=1, term=1.0;
while (fabs(term)=1e-6 )
{ pi+=term;
n+=2;
sign=-sign;
term=sign/n;
}
pi*=4;
printf("pi=%10.8f", pi);
return 0;
}
如何用C语言程序实现输出圆周率小数点后100位小数
π=3.1415926……无穷多位, 历史上很多人都在计算这个数, 一直认为是一个非常复杂的问题。现在有了电脑, 这个问题就简单了。
电脑可以利用级数计算出很多高精度的值, 有关级数的问题请参考《高等数学》,以下是比较有名的有关π的级数:
π = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*3/7 + ...
例程:
/*这是一位大神编制的算pi程序,精确到800位,具体算法已不可考*/
#includestdio.h
int main()
{
long a=10000,b=0,c=3500,d=0,e=0,f=0,g[3501];
for(;b-c;)g[b++]=a/5;
for(;d=0,f=c*2;c-=14,printf( "%.4d ",e+d/a),e=d%a)
for(b=c;d+=g[b]*a,g[b]=d%--f,d/=f--,--b;d*=b);
reutrn 0;
}
如何用C语言程序实现输出圆周率小数点后100位小数?
double精度不够,只有用数组模拟了。
楼上的程序不正确,我改了下
#includestdio.h
int main()
{
long a=10000,b=0,c=3500,d=0,e=0,f=0,g[3501];
for(;b-c;)g[b++]=a/5;
for(;d=0,f=c*2;c-=14,printf( "%.4d ",e+d/a),e=d%a)
for(b=c;d+=g[b]*a,g[b]=d%--f,d/=f--,--b;d*=b);
}