同構數意味著該數出現在其平方數的右側。
例如:n = 25, n**2 = 25*25 = 625
給定的數字 25 出現在結果的右側。
因此,25 是乙個同構數。
演算法:
將要檢測的數字儲存在變數 num 中。 使用 str() 函式將給定數字轉換為字串,並使用 len() 函式查詢儲存在變數 lenth 中的給定數字的長度。 計算給定數字的平方並將其儲存在變數 sqr num 中。 使用模運算和 pow() 函式獲取 sqr num 的最後 n 位數字並將其儲存在變數 n 中。 使用 if 條件語句檢查 n 是否等於給定的輸入數字 num。 如果該語句為 true,則給定數字的輸出為同構數。 如果為 false,則給定數字的輸出不是同構數字。
num = 25
lenth = len(str(num))
sqr_num = num**2
n = sqr_num % pow(10, lenth)
if n == num:
print(num, "是乙個同構數。 ")
else:print(num, "不是同構數。 ")
演算法:自定義函式是 automorphic(n),引數 n 是要檢測的數字。 計算 n 的平方,儲存在變數 sqr num 中。 使用 while 迴圈,條件是要檢測的數字為 n > 0。 取 n 和 sqr num 的餘數 10 分別確定餘數結果是否相等。 如果不等於,則函式返回 false。 將 n 和 sqr num 除以 10 並刪除最後一位數字。 繼續 while 迴圈。 經過幾次可整除後,要檢測的數字 n 為 0,while 迴圈結束。 該函式返回 true。 使用 if 語句判斷函式返回的結果。 如果該語句為 true,則給定數字的輸出為同構數。 如果為 false,則給定數字的輸出不是同構數字。
def is_automorphic(n):
sqr_num = n * n
while n:
square_remainder = sqr_num%10
number_remainder = n%10
if square_remainder != number_remainder:
return false
n //= 10
sqr_num //= 10
return true
n = 25
if is_automorphic(n):
print(n, "是乙個同構數。 ")
else:print(n, "不是同構數。 ")
演算法:使用字串切片與三元運算相結合,使用單行**檢測同構數。
n = 25
# n^2 = 625 '625'[-2::]= 25
print("yes" if int(str(n**2)[-len(str(n)):== n else "no")
演算法:使用 endswith() 方法檢查字串是否以指定值結尾。
num = 25
a = str(num)
num1 = num **2
b = str(num1)
if b.endswith(a):
print(num, "是乙個同構數。 ")
else:print(num, "不是同構數。 ")
建立文章並不容易,如果您喜歡這篇文章,請關注、點讚並與您的朋友分享。 如果您有意見和建議,請在評論中給我們反饋。