用二元法解题需要注意,的是小于1部分的边界值。比如:0.008,他的立方根为0.2,,这里的最大值为0-1之间,这里很容易出错。
得区分输入的值是大于1还是小于1.  
大于1:边界值在1到自身
小于1:边界值0-1 . 踩坑的路过。。。
while ((line = readline())) {
  let lines = line.split(/\s+/);
  let num = parseFloat(lines[0]);

  const main = function (num) {
    if (num < 0) {
      return -1 * main(-num);
    }
    if (num == 0 || num == 1) return num;
    let low = num > 1 ? 1 : 0;
    let high = num > 1 ? num : 1;
    /** 这里很容易出错,小于1的数 他的区间在0-1之间,而不是0-他本身之间 **/
    // let low = 0;
    // let high = num;
    // 用上面注释的代码,测试用例只能过80%
    let mid = 0;
    while (high - low > 0.001) {
      mid = (high + low) / 2;
      if (mid * mid * mid == num) {
        return mid;
      } else if (mid * mid * mid > num) {
        high = mid;
      } else {
        low = mid;
      }
    }
    return high;
  };
  let result = main(num);
  console.log(main(num).toFixed(1));
}