fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. int main(){
  5. int imax=28, n=3;
  6. double pi, err, an, bn,M_PI=3.141592653932384626;
  7. double a3,b3;
  8. a3=6*(cos(M_PI/6)/2);
  9. printf("a3は%lf ",a3);
  10. b3=6*(tan(M_PI/6)/2);
  11. printf("b3は%lf\n",b3);
  12. pi=(a3+b3)/2;
  13. err = M_PI - pi;
  14.  
  15. printf("%d %20.18lf\n", n, err); //n=3のときの相対誤差の出力
  16.  
  17. for(int i=0; i<imax; i++){
  18.  
  19. n*=2;
  20. an=(2*an*bn)/(an+bn) ;
  21. bn=sqrt(an*bn);
  22. pi=(an + bn)/2;
  23. err = M_PI - pi;
  24.  
  25. printf("%d %20.18lf\n", n, err); //for文内での相対誤差の出力
  26. }
  27. return 0;
  28. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
a3は2.598076  b3は1.732051
3 0.976529144399914895
6                 -nan
12                 -nan
24                 -nan
48                 -nan
96                 -nan
192                 -nan
384                 -nan
768                 -nan
1536                 -nan
3072                 -nan
6144                 -nan
12288                 -nan
24576                 -nan
49152                 -nan
98304                 -nan
196608                 -nan
393216                 -nan
786432                 -nan
1572864                 -nan
3145728                 -nan
6291456                 -nan
12582912                 -nan
25165824                 -nan
50331648                 -nan
100663296                 -nan
201326592                 -nan
402653184                 -nan
805306368                 -nan