二分法
算出 最终的值时。若值得平方大于x,则最终值-1;
若值平方小于x,则输出最终值。
public int mysqrt (int x) {
// write code here
if (x < 0){
System.out.println(new Exception("算数错误"));
}
if (x == 1 || x == 0){
return x;
}
int l = 1;
int r = x/2;
while (l<r){
int mid = l + (r-l) / 2;
if (x / mid == mid){
return mid;
}else if (x / mid > mid){
l = mid + 1;
}else {
r = mid - 1;
}
}
if(l * l > x){
System.out.println((l - 1));
return l - 1;
}else{
System.out.println(l);
return l;
} 


京公网安备 11010502036488号