Problem:
Implement int sqrt(int x)
.
Compute and return the square root of x.
Analysis:
Solutions:
C++:
int mySqrt(int x) {
if(x < 0)
return -1;
if(x <= 1)
return x;
unsigned long long start = 1;
unsigned long long end = x / 2 + 1;
while(start <= end) {
unsigned long long mid = (start + end) / 2;
unsigned long long square = mid * mid;
if(x == square)
return mid;
else if(x > square)
start = mid + 1;
else
end = mid - 1;
}
return end;
}
Java
:
Python: