f(x) = (-1)^n*x^(2n+1)/(2n+1)!,求f(x)的值,通项绝对值误差小于10的-7次方,然后输入0.5,答案给的是0.479426,但是我的程序跑出来是0.479172,就是有误差,我不知道是精度问题还是我的程序问题,就求助大佬们帮忙看看怎么解决呀,看看我的程序哪里有问题
#include<bits/stdc++.h>
using namespace std;
int main(){
double x,sign=-1;
cin>>x;
int n=1;
double sum=x;
while((x/n)>1e-7){
x=x*x*x;
n=n*(n+1)*(n+2);
sum=sum+sign*x/n;
sign=-sign;
}
cout<<sum<<endl;
return 0;
}