Implement int sqrt(int x)
.
Compute and return the square root of x.
实现开方功能,第一个想到的就是二分法,注意的是,为了防止溢出,需要用除法比较而不是乘法
public class Solution {
public int mySqrt(int x) {
if(x<2)return x;
int r = x/2+1;
int l = 1;
int m = (l+r)/2;
while(l<=r){
if(m<=x/m&&(m+1)>x/(m+1)){
return m;
}
if(m>x/m){
r = m-1;
m = (l+r)/2;
}
else{
l = m+1;
m = (l+r)/2;
}
}
return m;
}
}