为啥我这代码打印不出结果
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)
这个是作业里面水仙花数那个题目,我思路应该没问题吧,不知道为啥打印不出来,可能我底层逻辑没搞清楚吧 本帖最后由 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)
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) 你看这个对不对
for number in range(100,1000):
for i in range(number):
i += i**3
if number == i:
print(number)
页:
[1]