tag 牛頓迭代法 計算平方根
算法
只有一個公式,假設(shè)求的是n的平方根,k為最終結(jié)果
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;
}
總結(jié)
- 注意公式的形式
- k的初值,可以使用1.0
- 注意變量的類型使用
double類型,如果使用int類型,有些數(shù)據(jù)會出現(xiàn)死循環(huán)