PTA 5-15 计算圆周率

天大地大妈咪最大 提交于 2019-11-26 08:54:10
5-15 计算圆周率   (15分)

根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。

π2=1+13+2!3×5+3!3×5×7+⋯+n!3×5×7×⋯×(2n+1)+⋯2π=1+31+3×52!+3×5×73!++3×5×7××(2n+1)n!+

输入格式:

输入在一行中给出小于1的阈值。

输出格式:

在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。

输入样例:

0.01

输出样例:

3.132157
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    double n;
    cin>>n;
    double sum=0,i=1;
    double t=1;
    while(n<t)
    {
        double fenzi=1;
        for(int j=1;j<=i;j++)
            fenzi*=(double)j;//n!
        double fenmu=1;
        for(int j=1;j<=(2*i+1);j=j+2)//3*5*7...*(2n+1)
            fenmu*=(double)j;
        t=fenzi/fenmu;
        sum+=t;
        i++;
    }
    cout<<setiosflags(ios::fixed);//保留精度
    cout<<setprecision(6);
    cout<<(sum+1)*2;
    return 0;
}



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!