問題描述:
實現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.由於返回型別是整數,小數部分將被捨去。牛頓迭代法求解,原...