牛顿迭代法:

  • 求f(x) = 0 中解 x
  • 对f(x)泰勒展开,当x与接近时,可以用 近似 x。
  • 当x与接近时,
    移项即
    对于任意, 令
    不断对迭代,会逐渐靠近x 即为解。

    代入公式即
class Solution {
public: 
   int sqrt(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;
    }
};