a023: 3N+1 (**)
'''
有一個數列是這樣的:
第一項是一個大於一的正整數 N
如果這一項是奇數,則它的下一項是 3N+1
如果這一項是偶數,則它的下一項是 N/2
如此反覆,直到最後一項出現 1 為止
現在給你第一項的 N,請你求出這個數列有幾項,
例如第一項是3,則這個數列為:3、10、5、16、8、4、2、1,共8項。
輸入說明:
輸入一個大於1的正整數 N。
輸出說明:
請輸出以 N 為第一項的數列有幾項。
輸入1:
3
輸入2:
12
範例輸出 :
輸出1:
8
輸出2:
10
'''
X=int(input("輸入一個大於1的正整數 N > "))
Cnt=1
print(X,',',end='')
while X != 1 :
if (X%2==0):
X=X//2
else:
X=3*X+1
Cnt=Cnt+1
print(X,',',end='')
print("共有",Cnt,"項")
=== RESTART: F:/Python_APSC/a023.py ======================
輸入一個大於1的正整數 N > 3
3 ,10 ,5 ,16 ,8 ,4 ,2 ,1 ,共有 8 項
>>>
=== RESTART: F:/Python_APSC/a023.py ======================
輸入一個大於1的正整數 N > 12
12 ,6 ,3 ,10 ,5 ,16 ,8 ,4 ,2 ,1 ,共有 10 項
>>>
沒有留言:
張貼留言