题目: 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
答案:
/** * @param {number} x * @return {number} */ let mySqrt = function (x) { if (x == 0) return 0; if (x < 3) return 1; let len = (x + '').length; let start1 = '1', start2 = '3', start = 0; for (let i = 1; i < len - 1; i++) { if (i % 2 == 0) { // 奇数 start1 += '0'; } else { // 偶数 start2 += '1' } } if (len % 2 == 0) { start = start2 * 1 - 1; } else { start = start1 * 1 - 1; } for (let j = start; j < x; j++) { if (j * j > x) { return j - 1; } } };