#include<iostream>
using namespace std;
int main()
{
double x;
cin >> x;//例如:1000
double l=-100,r=100;
while(r-l > 1e-8)//保证精度
{
double mid = (l+r)/2;//第一次mid=0
if(mid*mid*mid >= x) r = mid;
else l = mid;//mid <= 1000,所以把mid赋给左边界l,后面往右找
}
//循环到r-l > 1e-8的条件不满足,即精度达到要求,就打印符合要求的l。
//这个时候精度达标,l与r非常接近,打印哪个都可以
printf("%.6lf",r);
return 0;
}
这里面的a,b要根据具体二分的范围来指定,对于c的值,如果题目中要求保留4位小数,c取1e-6,如果题目中要求保留6位小数,那c取1e-8