def sequence(n):
while n != 1:
print n,
if n%2 == 0: # n is even
n = n/2
else: # n is odd
n = n*3+1
sequence(6)
6 3 10 5 16 8 4 2
为什么这里的输出不包括 1?很多很多感谢!
尝试使用<=
或>=
例如while n >= 1
。这应该可以满足您的需求:)
如果n == 1
,您将 while 循环设置为中断。尝试可能做n > 0
或n >= 1
。
while n != 1:
print n
一旦 n 获得值 1,它就不会进入循环,因此不允许打印"n"。