Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
实现 int sqrt(int x)
。
计算并返回x的平方根。
分析:二分法实现。
注意计算平方可能溢出。
int mySqrt(int x) {
int left = 0, right = x;
int mid = 0;
if(x <= 1)
return x;
while(left+1 < right)
{
mid = (left + right)/2;
if(mid > x/mid) /* mid*mid-x 可能溢出 */
{
right = mid;
}
else if(mid < x/mid)
{
left = mid;
}
else
{
return mid;
}
}
return left;
}