求平方根算法-牛顿迭代法
tag牛顿迭代法计算平方根
算法
只有一个公式,假设求的是n的平方根,k为最终结果
k = (k + x / k) / 2,不断迭代
模板
public static int mySqrt(int x) { double k=1.0; while(Math.abs(k*k-x)>1e-9) { k=(k+x/k)/2; } return (int) k; }
总结
- 注意公式的形式
- k的初值,可以使用1.0
- 注意变量的类型使用double类型,如果使用int类型,有些数据会出现死循环