CodingNoStop 2021-03-05 18:42 采纳率: 40%
浏览 27

有没有大哥帮我这个滞涨看看这个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条回答 默认 最新

  • 垃圾管理员 2021-03-05 19:38
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制