PTA基础编程 5-15 计算圆周率 (15分)

来源:互联网 发布:背身护球 知乎 编辑:程序博客网 时间:2024/06/07 07:15

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

\frac{\pi}{2} = 1+\frac{1}{3} + \frac{2!}{3\times 5}+ \frac{3!}{3\times 5\times 7}+\cdots + \frac{n!}{3\times 5\times 7\times \cdots \times (2n+1)}+\cdots
​2

​π
​​ =1+
​3

​1
​​ +
​3×5

​2!
​​ +
​3×5×7

​3!
​​ +⋯+
​3×5×7×⋯×(2n+1)

​n!
​​ +⋯

输入格式:

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

输出格式:

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

输入样例:

0.01
输出样例:

3.132157

#include<stdio.h>#include<algorithm>#include<iostream>using namespace std;int main(){     int n=0;     double e,f;//e为输入的阈值,f为单独一项的值     double fz=1,fm=1;//初始化分子,分母为1     double sum=0,pi;//sum为各项的和,pi为最终结果     while(~scanf("%lf",&e))     {         for(f=1;f>=e;n++)         {             if(n==0)//第一项单独讨论                 fz=1;             else                 fz=fz*n;//后一项的分子等于前一项的分子乘上n             fm=fm*(2*n+1);//后一项的分母等于前一项的分子乘上(2n+1)             f=fz/fm;             sum=sum+f;         }         pi=2*sum;         printf("%.6f\n",pi);     }     return 0;}
0 0
原创粉丝点击