【发布时间】:2017-09-27 21:01:22
【问题描述】:
我正在尝试实现一个函数来使用泰勒级数计算 pi,这是我的代码
#include <iostream>
#include <math.h>
using namespace std;
double pi(int n)
{
double sum = 1.0;
int sign = -1;
for (int i = 1; i < n; i++)
{
sum += sign / (2.0 * i + 1.0);
sign = -sign;
}
return 4.0 * sum;
}
int main()
{
cout << "the value for pi is" << pi ;
}
由于某种原因,我的代码一直返回 1,但我不明白为什么
作为旁注,如果系列的最新项的绝对值小于 pi 的最新估计值中的误差,则执行 taylor 系列的代码将停止运行
我正在考虑通过使用类似的 for 循环来计算错误,并在整个函数中使用 do...while 循环,一旦满足此条件,就会停止计算 pi,但我不确定如果有更简单的方法可以做到这一点或从哪里开始。
我是这个论坛和 c++ 的新手,非常感谢我能得到的任何帮助
【问题讨论】:
-
cout << "the value for pi is" << pi;->cout << "the value for pi is" << pi(1000);
标签: c++ function loops pi taylor-series