问题描述
def collatz(n):
while n > 1:
print(n,end=' ')
if (n % 2):
# n is odd
n = 3*n + 1
else:
# n is even
n = n//2
print(1,end='')
n = int(input('Enter n: '))
print('Sequence: ',end='')
collatz(n)
解决方法
只需添加一个计数器
def collatz(n):
counter = 0
while n > 1:
counter += 1
print(n,end=' ')
if (n % 2):
# n is odd
n = 3*n + 1
else:
# n is even
n = n//2
print(1,end='\n')
print("Number of steps until convergance :" + str(counter))
n = int(input('Enter n: '))
print('Sequence: ',end='')
collatz(n)