对
[
−
10000
,
10000
]
[−10000, 10000]
[−10000,10000]进行浮点数二分。
#include <iostream>
using namespace std;
double n;
int main() {
cin >> n;
double l = -10000, r = 10000;
while (r - l > 1e-8) {
double mid = (l + r) / 2;
if (mid * mid * mid > n) r = mid;
else l = mid;
}
printf("%.6lf\n", l);
return 0;
}