浮点数二分
详见注释
浮点数二分的话不用考虑边界问题,所以比较简单,但是注意精度问题!!!
#include<bits/stdc++.h>
using namespace std;
double x;
int main()
{
cin>>x;
double l=-1000,r=1000;//左区间与右区间
while (r-l>=1e-7)
{
double mid=(l+r)/2;//取中间值
if (mid*mid*mid<=x)l=mid; //更新左区间
else r=mid;//更新右区间
}
printf("%.6lf",l);
return 0;
}