这个球arctan()的函数怎么错了呢?
arctanx=x-x^3/3+x^5/5-x^7/7+.....直到级数某项绝对值不大于1e-15为止
我的代码如下
#include <iostream>
#include <cmath>
using namespace std;
double power(double x,int n)
{double val=1.0;
while(n--)
val*=x;
return val;
}
double arctan(double x)
{
long int p=1;
double a=x;
double sum=0;
long int t=0;
while(abs(a)>=1e-15)
{
a=power(x,p)/p;
sum+=a*(power(-1,t));
t++;
p+=2;
}
return sum;
}
int main()
{
cout<<arctan(1.0);
return 0;
}
按理说应该输出0.785
而我的程序输出的是:0.6666
请问我的程序在哪里出了问题?