1.在做浮点数二分的时候需要记住有一个经验值,题目中若是要我们保留6为小数,那么我们的eps需要设置为1e8,(经验值:精确的小数点部分+2)
2.我们在写二分代码的时候需要记得 l = mid, r = mid;
代码:
#include <iostream> #include <cstdio> using namespace std; const double eps = 1e-8; inline double find(double l, double r, double x) { while(r - l > eps) { double mid = (l + r) / 2; if(mid * mid * mid >= x) r = mid; else l = mid; } return l; } int main(void) { double n; scanf("%lf", &n); double t = find(-101, 101, n); printf("%.6lf\n", t); return 0; }