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

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

1. 题目摘自

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

2. 题目内容

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

输入格式:

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

输出格式:

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

输入样例:

0.01

输出样例:

3.132157

3. 源码参考
#include 
#include 

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;
}

你可能感兴趣的:(【MAC 上学习 C++】Day 65-3. 7-15 计算圆周率 (15 分))