Implement int sqrt(int x)
.
Compute and return the square root of x.
class Solution {
public:
const double EPSILON = 1e-6;
int sqrt(int x) {
if (x == 0 || x == 1)
return x;
double last = 0;
double ret = 1;
while (fabs(ret-last) >= EPSILON) {
last = ret;
ret = (ret + x / ret) / 2;
}
return ret;
}
};
class Solution {
public:
int sqrt(int x) {
if (x == 0 || x == 1)
return x;
long long i = 0;
long long j = x / 2 + 1;
while (i <= j) {
long long mid = (i + j) / 2;
long long square = mid * mid;
if (square == x) {
return mid;
}
else if (square < x) {
i = mid + 1;
}
else {
j = mid - 1;
}
}
return j;
}
};