【题目描述】
根据公式:arctanx(x)=x−x^ 3/3+x^ 5/5−x^ 7/7+…和π=6arctanx(1/√3).定义函数arctanx(x),求当最后一项小于10^(−6)时π的值。
【输入】
(无)
【输出】
π的值。保留到小数点后10位。
【输入样例】
(无)
【输出样例】
(无)
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double arctanx(double num);
int main() {
double p,pi;
p=1.0/sqrt(3);//公式的参数
pi=6.0*(arctanx(p));//调用函数
printf("%.10lf",pi);//保留十位小数
return 0;
}
double arctanx(double num) {
double sum=0,temp=num;
int i=1;
while(fabs(temp/i)>=1e-6) { //最后一项绝对值大于10^(-6)时进行循环
sum+=temp/i;//累加各项
temp=-1.0*num*num*temp;//求下一项
i+=2;//系数+2
}
return sum;
}