您的位置:首页 > 其它

[LeetCode] 69. Sqrt(x)

2016-08-01 19:14 609 查看
思路:

牛顿迭代法. 假设f(X) = 0在X0处有一个根, 那么Xn+1 = Xn - f(Xn) / f’(Xn). 所以对于f(X) = X^2 - a. Xn+1 = Xn - (Xn^2 - a) / (2Xn)

int mySqrt(int x) {
if (! x) return x;
double epsilon = 0.001;
double prev = 1, cur = 1;
do {
prev = cur;
cur = (prev + x / prev) * 1.0 / 2;
} while (fabs(prev - cur) > epsilon);
return cur;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode