有人可以帮助我为什么这段代码不起作用?

时间:2016-06-20 12:58:06

标签: python-3.x

我是python3的初学者。我试着编写这段代码。

n=4
for i in range(2,n+1):
    j=i
    k=1
    while j!=1:
        if j%2==0:
            j=int(j/2)
        else:
            j=3*j+2
        k=k+1
    print(k)

我做错了什么?

2 个答案:

答案 0 :(得分:0)

在没有运行代码的情况下,在我看来你的条件j!= 1会连续运行,因为j永远不会是1,导致无限循环。

答案 1 :(得分:0)

第二次迭代,j = 3

j : 11, 35, 107, .... 

j = j * 3 + 2 :
    odd * 3 = an odd
    an odd + 2 = another odd

j总是很奇怪,这就是j % 2 == 0永远不会True的原因。它变成了一个无限循环。