根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
输入格式:
输出格式:
输入样例:
0.01
输出样例:
3.132157
思路
等号右边是一系列项的累加,当最后一项小于阈值时,我们就可以计算结果了。
分子是阶乘形式,我们没必要用递归算出值再加起来,而是算好某一项,再累乘求和即可。分母也是同样的处理方法。
代码
#include <iostream>#include <algorithm>using namespace std;int main() {double eps = 0;cin >> eps;double fenzi = 1, fenmu = 1, pi = 1;double item = 1;while(fenzi / fenmu > eps) {fenzi *= item;fenmu *= 2.0 * item + 1.0;item += 1.0;pi += fenzi / fenmu;}printf("%.6lf", pi * 2);return 0;}
