C语言计算圆周率

2024-11-20 11:30:20
推荐回答(3个)
回答(1):

#include
#include
int main(){
double p=0,q=0;
int i;
for(i=1;;i++){
p+=6*1.0/(i*i);
q+=4*1.0*pow(-1,i+1)/(2*i-1);//q后面少一个+
if(fabs(sqrt(p)-q)<1e-6)
break;
}
printf("PI is %lf,项数为%d",q,i);
return 0;
}

回答(2):

 #include "stdio.h"
void main()
{
 int n=0;
    double i=1;
    double sum=0;
    while((1/i)>0.0000001)
    {
     n++;
     if(n%2==0) i=i*(-1);
     sum=sum+1.0/i;
     if(i<0) i=i*(-1);
     i+=2;
    }
    printf("%lf",sum*4);
}

 //刚少了项数

#include "stdio.h"
void main()
{
 int n=0;
    double i=1;
    double sum=0;
    while((1/i)>0.0000001)
    {
     n++;
     if(n%2==0) i=i*(-1);
     sum=sum+1.0/i;
     if(i<0) i=i*(-1);
     i+=2;
    }
    printf("%lf,项数为%d",sum*4,n);
}

回答(3):

绝对精妙
#include
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);
scanf("%s");
return 0;
}