WA on #2#4求调

P1024 [NOIP2001 提高组] 一元三次方程求解

我快对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


|