# 069.Sqrtx



































// https://leetcode-cn.com/problems/sqrtx/

/**
 * @param {number} x
 * @param {number} precision
 * @return {number}
 */
var mySqrt = function (x, precision) {
    if (x < 2) {
        return x;
    }
    var low = 1;
    var high = x;
    var baseline = Math.pow(10, -precision);
    while (high - low > baseline) {
        var mid = low + (high - low) / 2;
        var guess = Math.pow(mid, 2);
        if (guess === x) {
            return Number(mid).toFixed(precision);
        } else if (guess > x) {
            high = mid;
        } else if (guess < x) {
            low = mid;
        }
    }
    return Number(mid).toFixed(precision);
};

// mySqrt(4, 0)  => 2
// mySqrt(4, 1)  => 2.0
// mySqrt(5, 0)  => 2
// mySqrt(5, 1)  => 2.2
// mySqrt(5, 10) => 2.2360679774