Python程式:判斷一個數是否為完全平方數(不使用sqrt函式)
假設我們有一個數字n,我們需要檢查n是否為完全平方數。一個完全平方數k可以表示為k = a * a,其中a為整數。我們需要在不使用內建平方根函式的情況下解決這個問題。
因此,如果輸入類似於n = 121,則輸出將為True,因為121 = 11*11。
為了解決這個問題,我們將遵循以下步驟:
如果n等於0或n等於1,則
返回True
開始 := 2
結束 := n / 2 的向下取整
當開始 <= 結束時,執行以下操作:
臨時 := 從開始到結束的所有數字的列表
k := 臨時列表的中間元素
k_平方 := k * k
如果k_平方等於n,則
返回True
如果k_平方 > n,則
開始 := 臨時[0]
結束 := k - 1
否則,
開始 := k + 1
結束 := 臨時列表的最後一個元素
返回False
示例
讓我們看看下面的實現以更好地理解
def solve(n): if n == 0 or n == 1: return True start = 2 stop = n // 2 while start <= stop: temp = range(start, stop + 1) k = temp[len(temp) // 2] k_squared = k * k if k_squared == n: return True if k_squared > n: start = temp[0] stop = k - 1 else: start = k + 1 stop = temp[-1] return False n = 121 print(solve(n))
輸入
121
輸出
True
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP