我是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)
我做错了什么?
答案 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
的原因。它变成了一个无限循环。