Implement int sqrt(int x)
.
Compute and return the square root of x.
========================================================
题目链接:https://leetcode.com/problems/sqrtx/
题目大意:求x的平方根,
思路:二分法。
注意点:mid * mid 可能超出int的范围,需要用long long。
参考代码:
class Solution {
public:
int mySqrt(int x) {
int miner = 0 , maxer = x ;
while ( miner <= maxer )
{
long long mid = ( miner + maxer ) / 2 ;
long long sum = mid * mid ;
if ( sum == x )
return mid ;
else if ( sum > x )
maxer = mid - 1 ;
else
miner = mid + 1 ;
}
return miner - 1 ;
}
};