问为何运行不了
def shuixianhua():for each in range(100,1000):
sum=0
while each:
sum=sum+(each%10)**3
each=each//10
if sum==each:
print(each,end='\t')
print('所有水仙花数',end='') 你在代码中遇到的主要问题是变量 each 的使用。由于在循环中对 each 进行了修改,到了判断条件 if sum==each: 时,each 已经被修改为 0,所以永远不会满足条件。你需要保存原始的 each 值用于比较。下面是修正后的代码:
def shuixianhua():
for each in range(100, 1000):
sum = 0
number = each# 保存原始的 each 值用于比较
while each:
sum = sum + (each % 10) ** 3
each = each // 10
if sum == number:
print(number, end='\t')
print('所有水仙花数', end=' ')
shuixianhua()
这样,代码就可以正常运行并输出所有三位数的水仙花数了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]