Given a non-negative integer
x, compute and return the square root of
Since the return type is an integer, the decimal digits are truncated, and only the integer part of the result is returned.
Note: You are not allowed to use any built-in exponent function or operator, such as
pow(x, 0.5) or
x ** 0.5.
Input: x = 4
Input: x = 8
Explanation: The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned.
0 <= x <= 231 - 1
Making use of binary search to find out the number, whose power of 2 is mostly closed to x value. To assign the halved value of num & left smallest integer into mid_val variable, using its power of 2 to compare whether it is greater than x or not. If its value is greater, assign the middle value into ans variable and increment the value of left smallest number as well. If not, then decrement the value of num.