请问这两个二分有什么区别吗
EPS=1e-8
double res=INF,l=0,r=1e9;
while(l+EPS<=r){
double mid=(l+r)/2.0;
if(Check(mid)) res=mid,l=mid+EPS;
else r=mid-EPS;
}
return res;
double res=INF,l=0,r=1e9;
while(fabs(r-l)<=EPS){
double mid=(l+r)/2.0;
if(Check(mid)) res=mid,l=mid+EPS;
else r=mid-EPS;
}
return res;
两个交上去都过了
但是第一种本地跑当答案不在区间内时就会死循环
输出出来l已经等于r了却没有退出