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