回覆列表
-
1 # 淡定點
-
2 # ꯭꯭ ꯭ ꯭▞꯭▚꯭▞꯭▚꯭ ꯭꯭꯭ ꯭
這是C語言編的,你看行不,不行我再轉換成C++ #include<stdio.h> #include"math.h" main() { double e=0.1,b=0.5,c,d; long int i; for(i=6;;i*=2) { d=1.0-sqrt(1.0-b*b); b=0.5*sqrt(b*b+d*d); if(2*i*b-i*e<1e-15) break; e=b; } printf("pai=%.15lf\n",2*i*b); printf("The number of edges of required polygon:%ld\n",i); }
C++程式碼:
const double PI = 3.14159265358979323846;
C/C++程式碼:
#define PI 3.14159265358979323846
這樣PI就是表示圓周率近似值的double型常量。
注意無論是float、double還是long double,精度都有限,無法表示精確值。
此外,也可以利用反三角函式:const double PI = 4.0*atan(1.0);,以防止輸入錯誤。(精度還是double級的。)