题目
Compute and return the square root of x, where x is guaranteed to be a non-negative integer.
Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.
- Example 1
Input: 4
Output: 2
- Example 2
Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since
the decimal part is truncated, 2 is returned.
var mySqrt = function(x) {
let min = 0;
let max = x;
let mid;
while(min < max) {
mid = (min + max) / 2
squared = mid*mid;
if (squared === x) {
return mid;
// 无法完全开平方,不处理一直二分下去无答案,会栈溢出
} else if (Math.floor(min) === Math.floor(max)) {
return Math.floor(mid);
} else if (squared > x) {
max = mid;
} else if (squared < x) {
min = mid;
}
}
return 0;
};
- 方法二
function mySqrt(x){
return Math.trunc(Math.sqrt(x))
}
- 方法三
function mySqrt(x){
for (var i = 0; ;i++) {
if (i * i > x) {
return i - 1;
}
}
return false;
}
网友评论