PTA基础编程 5-15 计算圆周率 (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
#include
#include
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;
}

你可能感兴趣的:(c语言编程)