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
//這題應該用二分法來查找
//二分法
public static int mySqrt(int x) {
if(x==0 || x ==1){
return x;
}
int left = 0;
int right = x;
while(left<=right){
int mid = (left + right)/2;
if(x/mid==mid && x%mid==0){
return mid;
}
if(x/mid<mid){
right = mid -1;
}else{
left = mid + 1;
}
}
return right;
}