Barthes0131
Barthes0131
采纳率100%
2021-03-05 18:42

有没有大哥帮我这个滞涨看看这个bug,晕了

这是我写的代码,题目链接在下面

number,text=eval(input()),input().split()
lis=[]
for p in text:
    p=int(p)
    print(p)
    num=p
    a=1
    while p>1:
        if p%2==0:
           p/=2
           p=int(p)
           print(p)
           if str(p) in text:
                a=0
                break
        if p%2!=0:
           p=(3*p+1)/2
           p=int(p)
           print(p)
           if str(p) in text:
                a=0
                break
    if a==1:
          lis+=str(num)
lis=sorted(lis,key=lambda x:int(x),reverse=True)
print(' '.join(lis))

我在运行的时候输入了一个'1 3'的例子,然后p一直在循环,不跳出我也不知道为啥...

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_41500251 垃圾管理员 1月前

    23行的if缩进,这个if分支应该属于while内部,现在是平级的。

    点赞 评论 复制链接分享