这里采用二分查找的办法计算一个数的二次根式。每次都采用折半查找看是否满足mid*mid==x,如果mid*mid 小于x,往后一半进行查找,相反向前一半进行查找,最后上代码:
public int sqrt(int x) {
int low=0;
int high=x;
while (low<=high) {
int mid=(low+high)/2;
if (mid*mid==x) {
return mid;
}else if (mid*mid<x) {
low=mid+1;
}else {
high=mid-1;
}
}
return high;
}