题目:
Implement int sqrt(int x)
.
Compute and return the square root of x.
思想:
对于一个数,其求根号后的数一定小于等于该数,为了能够加快搜索,可以采用二分法来解决问题。
注意:如果输入2,则输出1;输入7,输出2。
代码:
class Solution {
public:
int mySqrt(int x) {
if (x <= 1)
return x;
int start = 0;
int end = x;
while (start<end-1)
{
int middle = (start + end) / 2;
if (x / middle == middle)
return middle;
else if ((x / middle) > middle)
{
start = middle;
}
else
end = middle;
}
return end - 1;
}
};