牛顿迭代法:
- 求f(x) = 0 中解 x
- 对f(x)泰勒展开,当x与
接近时,可以用
近似 x。
- 当x与
接近时,
移项即
对于任意, 令
不断对迭代,
会逐渐靠近x 即为解。
求
代入公式即
class Solution {
public:
int mysqrt(int x) {
double x1 = 1,x2 = 0;
while(abs(x2 - x1) > 1e-8 ){ // 当上一个迭代结果与当前迭代结果相差不大时,则迭代精度达到要求返回x1。
x2 = x1;
x1 = x1 - (x1 - x/x1)/2;
}
return (int)x1;
}
};
京公网安备 11010502036488号