[AcWing 790] 数的三次方根



点击查看代码
#include

using namespace std;

int main()
{
    double x;
    scanf("%lf", &x);
    double l = -1e5, r = 1e5;
    while (r - l > 1e-8) {
        double mid = (l + r) / 2;
        if (x <= mid * mid * mid)   r = mid;
        else    l = mid;
    }
    printf("%.6f", l);
    return 0;
}

  1. 浮点数二分模板;
  2. while 的判断条件 1e-8 是因为比结果要保留的 1e-6 小 1e-2,一般可以采用这个经验,将判断条件设置为比结果要保留的小数小两位的数;