我使用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循环。我如何创建这样的循环。请举例说明。
答案 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;
}
}