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