69 Sqrt(x)
int mySqrt(int x)
{
if (x == 0 || x == 1) return x;
long long start = 1, end = x, mid, pow, ans;
while (start <= end)
{
mid = (start + end) / 2;
pow = mid*mid;
if (pow == x) return mid;
else if (pow < x) {
start = mid + 1;
ans = mid;
}
else end = mid - 1;
}
return ans;
}
int main()
{
cout << mySqrt(2) << endl;
cout << mySqrt(1) << endl;
cout << mySqrt(2147483647) << endl;
}Last updated