标题7-15 计算圆周率 (15 point(s))
根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
(关系式难以输出,请在原题(https://pintia.cn/problem-sets/14/problems/795)中查看)
标题输入格式:
输入在一行中给出小于1的阈值。
标题输出格式:
在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。
标题输入样例:
0.01
标题输出样例:
3.132157
#include<bits/stdc++.h>
using namespace std;
double getnum(int x){
if(x == 1) return 1;
else return getnum(x - 1) * x;
}
double getnnum(int x){
if(x == 1) return 1;
else return getnnum(x - 1) * (2 * x - 1);
}
int main(){
double pi = 1, n = 1, m, up = 1, down = 1;
cin >> m;
while(up / down >= m){
up = getnum(n);
down = getnnum(n + 1);
pi += up / down;
n++;
}
printf("%.6lf", (double)pi * 2);
return 0;
}