我正在尝试使用泰勒系列实现一个函数来计算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的最新估计中的误差,那么执行泰勒系列的代码将停止运行
我想通过使用类似的for循环来计算错误,并且在整个函数中执行do ... while循环,一旦满足此条件就停止pi的计算,但是我不确定是否存在更简单的方法来做这个或从哪里开始 .
我对这个论坛很新,c,我能得到的任何帮助都非常感激
2 回答
您的示例中的
pi
是一个带参数的函数 . 因此,你必须添加括号和像这样的参数pi(50)
. 50只是一个使用任何你想要的例子 .您应该使用某个值来评估函数,例如10:
输出: