c++ - 用 C++ 计算圆周率

标签 c++ formula pi

我正在尝试使用以下公式计算 Pi: http://functions.wolfram.com/Constants/Pi/06/01/01/0005/

这是代码:

#include <iostream>
#include <cmath>
using namespace std;

int main() {

    long double n;
    cin >> n;
    long double first_part = 0.0, second_part = 0.0, pi = 0.0;

    for(int i = 0; i <= n; i++)
    {
        first_part += (pow(-1, n)) / ((2 * n + 1) * pow(5, 2 * n + 1));

        second_part += (pow(-1, n)) / ((2 * n + 1) * pow(239, 2 * n + 1));
    }

    pi = (first_part * 16) - (second_part * 4);

    cout << pi << endl;

    return 0;
}

但是出了点问题。例如,对于 n = 300,它输出 6.65027e-420。 我真的找不到我的错误。 请帮我。 非常感谢。

最佳答案

你使用了错误的变量:

for(int i = 0; i <= n; i++)
    ^^^^^
     iterating over 'i'

但是:

    first_part += (pow(-1, n)) / ((2 * n + 1) * pow(5, 2 * n + 1));
    second_part += (pow(-1, n)) / ((2 * n + 1) * pow(239, 2 * n + 1));
                   ^^^^^^^^^^       ^^^^^               ^^^^^^^^^^^
                      all operations use 'n'

关于c++ - 用 C++ 计算圆周率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31055504/

相关文章:

c# - 需要一种数据类型来在 C# 中保存 100 万以上的数字

python - 选择性 python 字符串替换

c++ - 这些具有函数签名(如参数)的模板特化如何工作?

c++ - 在 C++ win32 控制台应用程序中输出 unicode 符号 π 和 ≈

c++ - 我什么时候使用引用?

javascript - 根据图像内框的尺寸计算出图像所需的高度

java - HashMap 中的平均跳数

excel - Excel 中的天数跟踪器

为词法转换包含的 C++ 头文件

c++ - 涉及比较仿函数的循环依赖