利用牛顿迭代法:
时间复杂度:O(logN)
C++代码:
class Solution {
public:
int mySqrt(int x) {
if (x < 1)
return 0;
double result = 1, record;
do
{
record = result;
result = (result + x / result) / 2;
} while (abs(result - record) >= 1);
return result;
}
};