Implement int sqrt(int x)
.
Compute and return the square root of x.
Difficulty: Medium
二分法,搜索1到x就好了。
int mySqrt(int x) {
if(x<0)
return 0;
if(x==1)
return 1;
unsigned long long int start = 1, en = x;
while(start<en)
{
unsigned long long int mid = start + (en-start)/2;
unsigned long long int mid2 = mid*mid;
if(mid2>x)
en = mid - 1;
else if(mid2<x)
start = mid + 1;
else
{
return mid;
}
}
if(start*start>x)
return start-1;
else
return start;
}