法一:
用二分查找找target 的中间值,就是target的平方根
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)
同样的方法可以用在其它的近似值计算中
public int mySqrt(int a) {long x = a;while (x * x > a) x = (x + a / x) / 2;return (int)x;}