# 69.x的平方根
# 题目
实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
# 示例
输入:4,
输出:2
输入:8
输出:2
8的平方根是2.82842...由于返回类型为整数,小数部分将被舍去。
1
2
3
4
5
6
2
3
4
5
6
# 解答
二分法:
var mySqrt = function(x) {
if(x<2) return x;
let low = 1,mid,high=Math.floor(x/2)
while(low<=high) {
mid= (low + high) >>> 1
if(mid*mid === x) {
return mid
}
if(mid*mid < x) {
low = mid +1
} else {
high = mid -1
}
}
return high
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16