题目描述:求平方根
思路:利用牛顿迭代法求解即可
如有需要,请访问我的Github获取包含测试程序的C++源码。
class Solution
{
public:
int mySqrt(
int x)
{
long long y = x;
while(y * y > x)
{
y = (y + x / y) /
2;
}
return y;
}
};
20180801更新:二分法
class Solution {
public:
int mySqrt(
int x) {
if (x <=
1)
return x;
int left =
0,
right = x;
while (
left <
right) {
int mid = (
left +
right) /
2;
if (x /
mid >=
mid)
left =
mid +
1;
else
right =
mid;
}
return
right -
1;
}
};