【MAC 上学习 C++】Day 65-3. 7-15 计算圆周

2020-04-10  本文已影响0人  RaRasa

7-15 计算圆周率 (15 分)

1. 题目摘自

https://pintia.cn/problem-sets/14/problems/795

2. 题目内容

根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
\frac{π}{2} = 1 + \frac{1}{3} + \frac{2!}{3×5} + \frac{3!}{3×5×7} + ⋯ + \frac{n!}{3×5×7×⋯×(2n+1)} + ⋯

输入格式:

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

输出格式:

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

输入样例:

0.01

输出样例:

3.132157

3. 源码参考
#include <iostream>
#include <iomanip>

using namespace std;

int fact1(int n);
int fact2(int n);

int main()
{
  double s, a, b;
  int i, n;
  
  cin >> a;
  s = 1;
  for(i = 1; ; i++)
  {
    b = 1.0 * fact1(i) / fact2(i);
    s += b;
    if(b < a)
    {
      break;
    }
  }

  cout << fixed << setprecision(6) << s * 2 << endl;

  return 0;
}

int fact1(int n)
{
  int i, s;

  s = 1;
  for(i = 1; i <= n; i++)
  {
    s *= i;
  }

  return s;
}

int fact2(int n)
{
  int i, s;

  s = 1;
  for(i = 0; i < n; i++)
  {
    s *= (3 + i * 2);
  }

  return s;
}
上一篇 下一篇

猜你喜欢

热点阅读