-3
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?很多很多thanx!

4

3 回答 3

1

尝试使用<=>=例如,while n >= 1。那应该做你需要的:)

于 2012-05-29T22:31:55.737 回答
0

您在中断 if 时设置了 while 循环n == 1。尝试可能做n > 0or n >= 1

于 2012-05-29T22:34:01.210 回答
0
while n != 1:
       print n

一旦 n 的值为 1,它就不会进入循环,因此不允许打印 'n'。

于 2012-05-29T22:34:07.297 回答