在不允许用原内置数学计算的情况下,可以考虑通过二分法逼近。
function mySqrt(x: number): number { if (x === 0) return 0 let start = 0, end = x, ret = -1 while (start <= end) { let mid = start + (end - start >> 1) if (mid * mid <= x) { ret = mid start = mid + 1 } else { end = mid - 1 } } return ret }