【题目描述】
根据公式: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 calculate(double x);
int main()
{
double a,pi;
a=1/sqrt(3);//计算公式的参数
pi=6*(calculate(a));//调用函数计算
printf("%.10lf\n",pi);//保留十位小数输出
return 0;
}
double calculate(double x)
{
double sum=0,temp=x;
int i=1;
while(fabs(temp/i)>=1e-6)//最后一项绝对值大于10^(-6)时进行循环
{
sum+=temp/i;//累加各项
temp=-1*x*x*temp;//求下一项
i+=2;//系数+2
}
return sum;
}
信息学奥赛一本通T1156:函数 求π的值 归属于 函数,更多同类题解源程序见:函数 和 求π的值
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!