在此示例中,您將學(xué)習(xí)檢查n位整數(shù)是否是Armstrong數(shù)字。
要理解此示例,您應(yīng)該了解以下Python編程主題:
一個正整數(shù)稱為阿姆斯特朗階數(shù),n如果
abcd... = an + bn + cn + dn + ...
如果是3位的阿姆斯特朗數(shù)字,則每個數(shù)字的立方和等于該數(shù)字本身。例如:
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153是一個阿姆斯特朗數(shù)。
# 檢查該數(shù)字是否為阿姆斯壯數(shù)字的Python程序 # 接受用戶的輸入 num = int(input("輸入一個數(shù)字: ")) # 初始化sum sum = 0 # 求出每個數(shù)字的立方和 temp = num while temp > 0: digit = temp % 10 sum += digit ** 3 temp //= 10 # 顯示結(jié)果 if num == sum: print(num,"是阿姆斯特朗數(shù)") else: print(num,"不是阿姆斯特朗數(shù)")
輸出1
輸入一個數(shù)字: 456 456 不是阿姆斯特朗數(shù)
輸出2
輸入一個數(shù)字: 407 407 是阿姆斯特朗數(shù)
在這里,我們要求用戶輸入一個數(shù)字,然后檢查它是否是一個阿姆斯特朗數(shù)字。
我們需要計算每個數(shù)字的立方和。因此,我們將總和初始化為0,并使用模運算符(%)獲得每個數(shù)字。將數(shù)字除以10所得的余數(shù)是該數(shù)字的最后一位。 我們使用指數(shù)運算符獲取多維數(shù)據(jù)集。
最后,我們將總和與原始數(shù)字進行比較,得出結(jié)論,如果它們相等,則是阿姆斯特朗數(shù)。
num = 1634 # 將num變量更改為string # 并計算出長度(位數(shù)) order = len(str(num)) # 初始化 sum sum = 0 # 求出每個數(shù)字的立方和 temp = num while temp > 0: digit = temp % 10 sum += digit ** order temp //= 10 # 顯示結(jié)果 if num == sum: print(num,"是阿姆斯特朗數(shù)") else: print(num,"不是阿姆斯特朗數(shù)")
您可以更改源代碼中num的值,然后再次運行以對其進行測試。