需要注意左边界小于0的问题,因此可以直接将x设为全局变量进行解决
#include<iostream>
using namespace std;
double x;
double bsearch_3(double l,double r){
while(r-l>1e-8){
double mid=(l+r)/2;
if(mid*mid*mid>=x)r=mid;
else l=mid;
}
return l;
}
int main(){
cin>>x;
printf("%lf",bsearch_3(-10000,10000));
}