不知道又是哪里精度出问题 样例五过三

img


#include
#include
int main (void){
double x,m,n,y,i;
scanf("%lf",&x);
m=x;n=1;y=x;
for(i=1;i<=1000;i++)
{ double a = 2i;
m = m
xx;
n = n
a*(a+1);
if(m/n<1e-5)
break;
y=y+m/n;
// if(m/n<1e-5)
// break;
}
printf("%.6lf",y);
return 0;
}

首先你的理解错误,题目的意思是直到尾项的值小于1e-5,意思是最后一项小于1e-5是要算的,但你判断小于1e-5就break了,这是不对的

img