LeetCode x的平方根

2021-09-11 01:34:23 字數 726 閱讀 7865

實現int sqrt(int x)函式。

計算並返回 x 的平方根,其中 x 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

示例 1:

輸入:4輸出:2
示例 2:

輸入:8輸出:2說明:8 的平方根是 2.82842..., 

由於返回型別是整數,小數部分將被捨去。

解題方法:明白開平方根基本演算法,這裡使用牛頓迭代法。

根據牛頓的理論

對於多項式 p(x) = a*(x^n)+b*(x^(n-1))+c*(x^(n-2))······

若存在近似值r,使得p(r)≈ 0,那麼 r - p(r)/p'(r) 的值將比 r 更加接近 真實解 的值。

那麼如何使用呢?

對於求24的平方根,我們可以設p(x)=x^2 - 24,那麼p『(x) = 2*x

這樣對於近似值r,設定r = r - (r^2-24)/2*r,這樣不斷迭代,就可以更加快速地得到近似值。

int mysqrt(int x) 

return (int) i;

}

LeetCode x的平方根

在網上學習了其他人的方法以後,寫了出來,學到了新的方法,在此記錄一下 1,返回整型的時候,可以使用二分法 2 返回double時,可以使用牛頓迭代法,a 求取乙個整數的平方根時,其平方根一定是不大於 n 2 1 所以在 0,n 2 1 這個範圍內求取,如下 int mysqrt int x if m...

leetcode x 的平方根

實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。這道題大體有幾類...

leetcode x的平方根 Python

實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.使用二分查詢法,對中間數進行判斷,如果mid 2 x...