class Solution {
public:
int sqrt(int x) {
// write code here
if(x <= 1){
return x;
}
int left = 1;
int right = x;//左右边界
while(left <= right){
int mid = (right + left) / 2;//中间值
if(mid <= x/mid && (mid+1) > x/(mid+1)){
return mid;// mid*mid可能溢出,所以用除法
}else if(mid < x/mid){
left = mid + 1;
}else{
right = mid - 1;
}
}
return 0;
}
};



