求水仙花数
"""计算100-999之间的水仙花数所谓水仙花数,即一个数的个位3次幂+十位的3次幂+百位的3次幂的和与该数相等
如:153=3**3+5**3+1**3"""
以下是老师讲的方法:
for item in range(100,1000):
ge = item % 10
shi = item // 10 % 10
bai = item // 100
if ge**3 + shi**3 + bai **3 == item:
print(item)
我想通过列表,通过下角标取值,分别取出个十百位数值,然后在通过if判断实现,不知道会不会更简便些,但能力有限,故求助大咖们帮忙!
可以这样用列表:
for item in range(100,1000):
temp =
if temp**3 + temp**3 + temp **3 == item:
print(item)
也可以用字符串下标索引,只是索引后需要转化为 int,参考代码:
for item in range(100,1000):
temp = str(item)
ge = int(temp)
shi = int(temp)
bai = int(temp)
if ge**3 + shi**3 + bai **3 == item:
print(item) for item in range(100 , 1000):
d , x = 0 , item
while x:
d += (x % 10) * (x % 10) * (x % 10)
x //= 10
if d == item:
print(item) jackz007 发表于 2022-6-3 11:47
while x:是什么意思? 执念的罗非鱼 发表于 2022-6-16 05:56
while x:是什么意思?
每一个整型数都是有逻辑值的,0 值为 False,非 0 值为 True。在本例中,只要 x 的值不为 0 就是 True。 {:5_109:}
页:
[1]