2012-05-29 2 views
-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 здесь? Многие многие из них!while statement

+1

Потому что, когда цикл прерывается по условию n! = 1. – nullpotent

ответ

1

попытаться использовать <= или >=, например, while n >= 1. Это должно делать то, что вам нужно.

+0

Thanx, я вижу! – user1424624

0

У вас есть петля, установленная на разрыв, если n == 1. Попытайтесь сделать n > 0 или n >= 1.

+0

Да, спасибо за это! – user1424624

0
while n != 1: 
     print n 

После того, как n получит значение 1, он не войдет в цикл, таким образом не позволяя печатать 'n'.

+0

Да, я только что понял! = Означает не равный в питоне, а не факториал ... Много thanx для вашего ответа! – user1424624