
法一:
用二分查找找target 的中间值,就是target的平方根
java
public int mySqrt(int x) {
int l = 0, r = x;
while (l <= r) {
int mid = l + (r - l) / 2;
if ((long) mid * mid <= x) {
l = mid + 1;
} else {
r = mid - 1;
}
}
return l-1;
}
牛顿迭代法

解题思路参考:69. x 的平方根 - 力扣(LeetCode)
同样的方法可以用在其它的近似值计算中
java
public int mySqrt(int a) {
long x = a;
while (x * x > a) x = (x + a / x) / 2;
return (int)x;
}