class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param x int整型
* @return int整型
*/
int mysqrt(int x) {
// write code here
if(x == 0) return 0;
if(x == 1) return 1;
//二分法
int margin_left = 0;
int margin_right = x;
int mid;
int result = 0;
while(margin_left <= margin_right){
mid = margin_left + (margin_right-margin_left)/2;
long long squre = (long long) mid*mid;
if(squre == x){
return mid;
}else if(squre < x){
result = mid;
margin_left = mid + 1;
}else if(squre > x){
margin_right = mid - 1;
}
}
return result;
}
};