goodwar7 发表于 2020-8-30 19:02:13

水仙花自写程序问题

各位大佬,水仙花问题,甲鱼的看懂了,但是自己肯定短时间内写不出来,下面是我自己想的,请问问题在哪里,没报错,但就是没啥反应:

num = 100
while 100 <= num <= 999:
    nums = str(num)
    result = 0
    for i in nums:
      t = int(i)**3
      result += t
    if result == num:
      print(result)
    num =+ 1

1q23w31 发表于 2020-8-30 19:05:34

num = 100
while 100 <= num <= 999:
    nums = str(num)
    result = 0
    for i in nums:
      t = int(i)**3
      result += t
    if result == num:
      print(result)
    num += 1
最后一行,加号等号顺序不对

冬雪雪冬 发表于 2020-8-30 19:06:17

最后一行
num += 1

昨非 发表于 2020-8-30 19:07:54

num = 100

while num>=100 and num <= 999:
    nums = str(num)
    result = 0
    for i in nums:
      t = int(i)**3
      result += t
      
    if result == num:
      print(result)
    num += 1      #这一行加等打错了

解决了请给个最佳

阴阳神万物主 发表于 2020-8-31 09:14:49

最后一行 num =+ 1。
执行完一次循环体后 num 被赋值为 1,直接退出循环。

goodwar7 发表于 2020-8-31 21:07:09

犯这种错误,浪费大家时间。。。。

goodwar7 发表于 2020-8-31 22:10:29

1q23w31 发表于 2020-8-30 19:05
最后一行,加号等号顺序不对

你好,为什么我把if缩进后结果后:
num = 100
while 100 <= num <= 999:
    nums = str(num)
    result = 0
    for i in nums:
      t = int(i)**3
      result += t
             if result == num:
                  print(result)
    num += 1

结果变为:
153
370
370
371
407
请问第二个370是怎么出来的?

1q23w31 发表于 2020-9-1 06:47:07

goodwar7 发表于 2020-8-31 22:10
你好,为什么我把if缩进后结果后:
num = 100
while 100

因为370的最后一个数字是0,在第二次循环的时候result已经等于num,而你又让他进行第三次循环,result还是等于num,就输出了两遍
页: [1]
查看完整版本: 水仙花自写程序问题