Implement int sqrt(int x)
.
Compute and return the square root of x.
x is guaranteed to be a non-negative integer.
Example 1:
Input: 4 Output: 2
Example 2:
Input: 8 Output: 2 Explanation: The square root of 8 is 2.82842..., and since we want to return an integer, the decimal part will be truncated.
求开方,方法较多,选择了其中一种,如下所示:
class Solution {
public int mySqrt(int x) {
int begin = 1, end = x;
while (begin <= end){
int mid = begin + (end - begin)/2;
if (mid < x/mid){
if (mid + 1 > x/(mid + 1)){
return mid;
}
begin = mid + 1;
}
else if (mid > x/mid){
end = mid - 1;
}
else {
return mid;
}
}
return 0;
}
}