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
类型,有些数据会出现死循环