用下列公式求 PI 值,直到最后一项小于10-8 // Pi.cpp PI/4 = 1-1/3+1/5-1/7+……
时间: 2024-09-14 11:11:54 浏览: 44
这个公式是莱布尼茨公式,用于计算圆周率π的一个无限级数。它表示π/4等于1减去1除以奇数的倒数,然后加上1再减去1除以下一个奇数的倒数,以此类推。每增加一项,数值会更接近π的真实值。下面是用C++实现该算法的部分代码:
```cpp
#include <iostream>
#include <cmath>
double calculatePi(int n, double epsilon = 1e-8) {
double pi = 0;
int denominator = 1;
for (int i = 0; i <= n; ++i) {
pi += ((-1) ** i) / denominator;
denominator += 2;
if (std::abs(pi * 4 - M_PI) < epsilon) { // 使用M_PI获取π的近似值
break;
}
}
return pi * 4;
}
int main() {
int terms_to_calculate;
std::cout << "Enter the number of terms to calculate (up to a precision of 10^-8): ";
std::cin >> terms_to_calculate;
double result = calculatePi(terms_to_calculate);
std::cout << "Approximate value of π is: " << result << std::endl;
return 0;
}
```
在这个程序中,用户输入想要计算的项数,`calculatePi`函数通过迭代计算级数,并在每一项的绝对误差小于给定阈值(这里是10^-8)时停止。`main`函数中调用`calculatePi`并打印结果。
阅读全文