python计算水仙花数

不知道为啥有个数字会输出两次
题目如图

img


输入输出样例如下

img

我的代码

img


运行如下

img


救救孩子吧

第6行的if语句要与第4 行for语句对齐。
这样改一下即可

n=int(input())
for i in range(10**(n-1),10**n):
    summ=0
    for j in str(i):
        summ+=int(j)**n
    if summ==i:
        print(i)


如对你有帮助,请点击采纳。

【有帮助请采纳】
你的代码错了一个地方,正确的代码应该是:

n = int(input())
for i in range(10**(n-1),10**n):
    sum = 0
    for j in str(i):
        sum +=int(j)**n
    if sum == i:print(i)

错误:最后一行代码,少了一个缩进,导致循环输出,你应该是等sum完全计算完了之后,再用if进行判断
【有帮助请采纳】