hjlyc 2022-04-01 17:16 采纳率: 100%
浏览 85
已结题

python 水仙花数

写了一个python求水仙花数的程序,为什么循环里面的if后面的代码,条件即使正确也不会去运行

num= int(input())
nums=[]
for i in range(num+1):
    x = str(i)
    lst=[]
    for y in range(len(x)):
        lst.append(int(x[y]))
    lst1=[x**3 for x in lst]
    a= sum(lst1)
    if a==num:
        print(i)
        nums.append(i)
if nums == []:
    print("none")

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2022-04-01 17:27
    关注

    第10行应该是if a==i:啊
    另外既然你用3次方,说明是求3位数的水仙花数,因此range应该是range(100,num+1)

    num = int(input())
    nums = []
    for i in range(100,num + 1):
        x = str(i)
        lst = []
        for y in range(len(x)):
            lst.append(int(x[y]))
        lst1 = [x ** 3 for x in lst]
        a = sum(lst1)
        if a == i:
            print(i)
            nums.append(i)
    if nums == []:
        print("none")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月9日
  • 已采纳回答 4月1日
  • 创建了问题 4月1日