一个非负整数x,计算并返回x的算数平方根。
结果将小数部分舍去,只保留整数部分并输出。
例如:
输入:x=4
输出:2
输入:x=8
输出2
思路:利用二分查找不断缩小范围直到找到最终的值并输出
int mySqrt(int x){
int right=x;
int left=0;
int ans=0;
while(left<=right){
int mid=left+(right-left)/2; //二分查找
if ((double)mid * mid <= x) {
ans = mid;
left = mid + 1;//更新左边界
} else {
right = mid - 1;//更新右边界
}
}
return ans;
}