实现 int sqrt(int x)
函数,计算并返回 x 的平方根。
样例
sqrt(3) = 1
sqrt(4) = 2
sqrt(5) = 2
sqrt(10) = 3
挑战
O(log(x))
****************************************
考虑为Integer.MAX_VALUE最大值的情况
class Solution {
/**
* @param x: An integer
* @return: The sqrt of x
*/
public int sqrt(int x) {
// write your code here
if(x == 0 || x == 1)
return x;
if(x >= 46340 * 46340)
return 46340;
int i=0;
for(i=0;i<=x/2;i++)
{
if(i*i > x)
{
i--;
break;
}
else if(i * i == x)
break;
}
return i;
}
}
int sqrt(int x) {
long long i = 0;
long long j = x / 2 + 1;
while (i <= j)
{
long long mid = (i + j) / 2;
long long sq = mid * mid;
if (sq == x) return mid;
else if (sq < x) i = mid + 1;
else j = mid - 1;
}
return j;
}