水野濑泷 发表于 2022-4-18 10:38:02

为啥我这代码打印不出结果

for number in range(100,1000):
    for i in str(number):
      i = int(i)
      i += i**3
      number = int(number)
      if number == i:
            print(number)

水野濑泷 发表于 2022-4-18 10:45:03

这个是作业里面水仙花数那个题目,我思路应该没问题吧,不知道为啥打印不出来,可能我底层逻辑没搞清楚吧

isdkz 发表于 2022-4-18 10:47:17

本帖最后由 isdkz 于 2022-4-18 10:49 编辑

每次 内层循环 i 都被重新赋值为当前位了,你并没有做到每个位的三次方累加的效果

对你的代码修改如下:
for number in range(100,1000):
    i = 0
    for j in str(number):
      i += int(j)**3
      if number == i:
            print(number)

cap19 发表于 2022-4-18 11:19:14

i=int(i)又重新赋值了
for number in range(100,1000):
    j=0
    for i in str(number):
      i = int(i)
      j += i**3
      number = int(number)
      if number == j:
            print(number)

Python永远的神~ 发表于 2022-4-18 18:25:44

你看这个对不对


for number in range(100,1000):
    for i in range(number):
      i += i**3
      if number == i:
            print(number)
页: [1]
查看完整版本: 为啥我这代码打印不出结果