我快对2分失去信心了......
by woscxk @ 2024-02-28 12:37:34
@[ikunczd](/user/1245629) fun2函数的while写错了,是r-l<0.001.但我改了还是错的,应该是精度问题。还有你的条件也弄错了,if(fun1(mid)*fun1(l)==0)这个是<。把while循环改成for循环,执行100次,还有if条件改一下,然后不要加减iuf,就ac了。就三个点有点问题。
void fun2(int m){
double l=m,r=m+1;
for(int i=0;i<100;i++){
double mid=(l+r)/2;
if(fun1(mid)*fun1(l)<0) r=mid;
else if(fun1(mid)==0){
printf("%.2lf ",mid);
return;
}
else l=mid;
}
printf("%.2lf ",l);
}
by gssgfgh @ 2024-02-28 14:15:33
谢谢,精度提高之后AC了
by woscxk @ 2024-02-28 17:51:12