實現 int sqrt(int x) 函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842…,
由於返回型別是整數,小數部分將被捨去。
牛頓迭代法:
γ (x
2)=0
\gamma(x^2)=0
γ(x2)=0f(
x)=x
2−nf(x)=x^2-n
f(x)=x
2−n求斜率:2x2x
2xx−(
x2−n
)/2x
=x/2
+n/2
xx-(x^2-n)/2x=x/2+n/2x
x−(x2−
n)/2
x=x/
2+n/
2xx n+
1=xn
/2+n
/2xn
x_=x_/2+n/2x_n
xn+1=
xn/
2+n/
2xn
最後進行迭代;
遞迴解決:
class
solution
return
sqrt
(x,x);}
double
sqrt
(double x,
int n)
else}}
;
2、迭代法:
class
solution
int n = x;
double now =0;
double res =1;
while
(res!=now)
return
int(res);}
};
3、還可以用二分查詢:
class
solution
int l=
0,r=x;
int ans=-1
;while
(l<=r)
else
}return
int(ans);}
};
牛頓迭代法求平方根
sqrt 方法 public static double sqrt double c 什麼是牛頓迭代法 多數方程不存在求根公式,牛頓提出了一種用迭代來求方程近似根的方法。思路就是不斷取切線,用線性方程的根逼近非線性方程f x 0的根x 過程簡介 過點 xk,f xk 作函式的切線,切線方程是 切線與...
牛頓迭代法 求平方根
牛頓迭代法 求出根號a的近似值 首先隨便猜乙個近似值x,然後不斷令x等於x和a x的平均數,迭代個六七次後x的值就已經相當精確了。例如,我想求根號2等於多少。假如我猜測的結果為4,雖然錯的離譜,但你可以看到使用牛頓迭代法後這個值很快就趨近於根號2了 這種演算法的原理很簡單,我們僅僅是不斷用 x,f ...
牛頓迭代法求平方根
牛頓迭代法 newton s method 又稱為牛頓 拉夫遜 拉弗森 方法 newton raphson method 它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。多數方程不存在求根公式,因此求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。方法使用函式f x...