2017年12月23日 星期六

a023: 3N+1 (**)

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 項
>>> 

沒有留言:

張貼留言

113 學年度第 1 學期 RFID應用課程 Arduino程式

113 學年度第 1 學期 RFID應用課程 Arduino程式 https://www.mediafire.com/file/zr0h0p3iosq12jw/MFRC522+(2).7z/file 內含修改過後的 MFRC522 程式庫 (原程式有錯誤) //定義MFRC522...