https://leetcode.com/problems/sqrtx/
问题描述
Implement int sqrt(int x)
.
Compute and return the square root of x, where x is guaranteed to be a non-negative integer.
Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.
Example 1:
Input: 4 Output: 2
Example 2:
Input: 8 Output: 2 Explanation: The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned.
Solution
class Solution {
public:
int mySqrt(int x)
{
long long i=0;
long long j=x/2+1;
while(i<=j)
{
long long mid=(i+j)/2;
long long res=mid*mid;
if(res==x)
return mid;
else if(res<x)
i=mid+1;
else
j=mid-1;
}
return j;
}
};