#include<iostream>
#include<iomanip>
using namespace std;
double arctan(double x);
int main(int argc, char const* argv[]){
double a = 16.0 * arctan(1.0 / 5.0);
double b = 4.0 * arctan(1.0 / 239.0);
double pi = a - b;
cout << setprecision(50); //可选输出精度,这次为50位
cout << "pi = " << pi << endl;
system("pause");
return 0;
}
double arctan(double x) {
double head = x; //head分子
int tail = 1; //tail分母
double art = 0;
while ((head / tail) > 1e-15) {
art = (tail % 4 == 1) ? art + head / tail : art - head / tail;
head *= x * x;
tail += 2;
cout << "///" << endl;
cout << tail << endl;
cout << "///" << endl;
}
return art;
}
1)实现方式:梅钦公式(实现方式自行百度。。。)