编写一个程序来打印给定范围内的所有阿姆斯特朗数字。注:阿姆斯特朗 number 是一个数字,其数字的立方和等于该数字本身。例如。 370=33+73+03
我不知道如何解决 请告诉我解决此类问题需要阅读的主题
我想这就是你想要的
def is_armstrong(n: int) -> bool:
powers = [int(ch)**len(str(n)) for ch in str(n)]
return sum(powers) == n
for i in range(500):
if is_armstrong(i): print(i)
注意
从网上搜索了一下,这似乎是阿姆斯特朗数的实际定义。你可能想看看 python 教程 e.x w3schools,这样你就可以了解一些有关 python 循环等的基础知识。
an integer x = d0d1d2...dn-1 where di is in [0-9]
is an armstrong/narcissistic number iff the sum d0^n + d1^n ... dn-1^n = x