在C ++中使用leibniz估计Pi

时间:2014-05-24 18:51:37

标签: c++ while-loop pi

我使用leibniz方法计算pi。我的程序输入精度数用于计算π,然后应用莱布尼兹无穷和来找到该精度内的π的近似值。

我正在尝试编写一个c ++ while循环,它将输入一个精度数字(一个double),初始总和将等于零,最初n将等于零。

分母在n = 0,d = 2 * n + 1 = 1,因此下一个项将是4.0 / 1 = 4.0。

然后将其添加到总和并增加n。如果此前一项大于准确度,则循环将继续。

当前一个术语较小时,应输出数字的准确度,并退出循环。

我的准确度绝不会超过±0.0001。

我的工作代码不正确:

while(sum<accuracy)
{
    int n = 0;
    while(n>10) //this is here due to debugging
    {
    sum=-4/(2*n+1);
    n++;
    cout << sum << endl;
    }
}

问题:
我很难想出一个可以执行上述操作的while循环。我如何创建这样的循环。请举例说明。

1 个答案:

答案 0 :(得分:0)

确保sum-variable为float / double。就像我们的朋友告诉你你是整数分裂的受害者

double sum;

while(sum<accuracy){
    int n=0;
    while(n>10)
    {
        sum=-4.0/(2.0*n+1.0);
        n++;
        cout << sum << endl;
    }
}