浮点数二分
算法思想:与整数二分类似,差别在于循环条件,以及选取区间的时候不需要+1或者-1。
代码模板
double l=0,r=1e9;
while(r-l>=1e-8){
double mid=(l+r)/2;
if(check(mid))r=mid;
else l=mid;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
namespace IO{
inline LL read(){
LL o=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){o=o*10+c-'0';c=getchar();}
return o*f;
}
}using namespace IO;
const int N=1e5+7;
int main(){
double x;
scanf("%lf",&x);
double l=-10000,r=10000;
while(r-l>=1e-8){
double mid=(l+r)/2;
if(mid*mid*mid>=x)r=mid;
else l=mid;
}
printf("%.6lf\n",l);
return 0;
}