实数二分,不需要考虑中点mid在那个区间,因此只考虑判断条件即可
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
double x;
cin >> x;
double l = -10000, r = 10000;
while(r - l > 1e-8) {
double mid = (r + l) / 2;
if (mid * mid * mid >= x) r = mid;
else l = mid;
}
printf("%lf", l);
return 0;
}