77229 发表于 2019-9-20 22:07:29

求助

问题是要求水仙花数,就是一个三位数字各个位数数字的三次方之和等于其数字本身
答案理解起来本身没什么问题,

但是我在自己做的时候没加temp = i

然后就输出不了东西,加了temp = i就没问题,求解

答案
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 3
      temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
      print(i)


我改的
for i in range(100,1000,1):
    sum = 0
    while i:
      sum = sum + (i%10)**3
      i //= 10
    if sum == i:
      print(i)

XiaoPaiShen 发表于 2019-9-21 02:17:17

for i in range(100,1000,1):
    sum = 0
    while i:
      sum = sum + (i%10)**3
      i //= 10
    if sum == i:    # 这里的i变成了0, 和sum 不会相等了, 所以要把i赋给temp再
      print(i)    # 进行while迭代运算, i的值保持不变

77229 发表于 2019-9-21 10:19:49

XiaoPaiShen 发表于 2019-9-21 02:17


感谢大佬
页: [1]
查看完整版本: 求助