撰寫一個函式來驗證它作為引數的數字是否是阿姆斯特朗數。阿姆斯壯數是那個數,它應該等于它的數字的冪(這里的冪是數字的個數)
我做了一個if宣告。我需要幫助才能用一個函式來做到這一點。
n = int(input("Enter a number: "))
a = n /1000
b = n/100%10
c = n/10%10
d = n%10
if (a**4) (b**4) (c**4) (d**4) == n:
print("Its an Armstrong number!")
else
print("Its Not an Armstrong")
uj5u.com熱心網友回復:
我發現str(num)在處理num. 您可以首先使用此str技巧構建一個數字串列。然后你就可以應用sum和領悟到串列中了。
def is_armstrong(num):
digits = [int(d) for d in str(num)] # list of digits
return sum(d ** len(digits) for d in digits) == num
print(*(x for x in range(10000) if is_armstrong(x))) # armstrong numbers < 10000
# 0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474
uj5u.com熱心網友回復:
def is_amstrong_number(n : int):
return n == sum([int(x)**3 for x in str(n)])
你可以試試這個
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358024.html
上一篇:組合函式的兩個引數
