编写了一个collatz函数
def collatz(num): if num % 2 == 0: print(num // 2) else: print(3 * num + 1)
后面怎么编写,可以让用户输入一个整数,并不断的对这个数进行调用collatz(),直到返回值1.输出结果大概是这样的:
Enter number: 3 10 5 16 8 4 2 1
我自己觉得应该是用while循环,但是编写的总是错误,不知道该怎么写,求教。
三叔2016-10-22 15:53:12
Collatz conjecture 還滿有趣的, 目前看起來還沒有人有完整的證明XD
def collatz(n): print(n) if n % 2 == 1 and n > 1: collatz(3*n + 1) elif n % 2 == 0: collatz(n // 2)if __name__ == '__main__': n = input('Enter a number: ') n = int(n) collatz(n)
測試:
dokelung@dhost:~$ python3 collatz.py Enter a number: 3 3 10 5 16 8 4 2 1
我回答過的問題: Python-QA