4 求平方根

2021-10-09 23:47:15 字數 822 閱讀 1325

問題描述:

實現int sqrt(int n)函式,計算返回n的平方根。

問題示例:

sqrt(3) = 1,sqrt(10) = 3,sqrt(4) = 2,sqrt(5) = 2。

問題分析:

一般遇到解方程的題目,最常用的就是二分法。

**實現:

class

solution

:def

my_sqrt

(self, n)

:"""利用二分法實現平方根函式"""

a, m, b =

0, n//

2, n

while a <= b:

if m * m > n:

b = m -

1elif m * m < n:

a = m +

1else

:return m

m =(a + b)//2

return m

if __name__ ==

"__main__"

: solution = solution(

) n =

int(

input

("輸入乙個正整數:"))

print

("開根號取整後為:"

, solution.my_sqrt(n)

)

沒錯,解決類似這種題目的方法有很多種,比如牛頓迭代法等等

詳細講解請參考:

求平方根函式

加一點注釋 unsigned short work unsigned int n 要進行開平方運算的物件 unsigned int ans 0 開平方運算的結果 unsigned int square 0 記錄中間產生的平方值 unsigned short r 0 程式最終的返回結果 for int...

迭代法求平方根

迭代法也稱輾轉法,是一種不斷用變數的舊值遞推新值的過程,跟迭代法相對應的是直接法,即一次性解決問題。迭代法又分為精確迭代和近似迭代,二分法 和 牛頓迭代法 屬於近似迭代法。迭代演算法是用計算機解決問題的一種基本方法。它利用計算機運算速度快 適合做重複性操作的特點,讓計算機對一組指令 或一定步驟 進行...

LeetCode 069 求平方根

實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去。牛頓迭代法求解,原...