我正在尝试制作一个程序,使用 Collatz 序列计算数字何时达到零。这是我对该程序的代码:
import time
def run(z):
while z != 1:
if isEven(z) == True:
z = z/2
print z
else:
z = (3*z)+1
print z
else:
print 'Got one!'
z = z+1
print 'Trying for %d...' %(z)
time.sleep(0.1)
run(z)
def isEven(number):
return number % 2 == 0
run(z)
但是,z
永远不会超过 2,它只会继续打印:
Got one!
Trying for 2...
1
Got one!
Trying for 2...
1
等等......谁能告诉我我做错了什么?