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

沒有留言:

張貼留言

Node-Red --> MQTT --> Fuxa 開源碼網頁式圖控平台

Node-Red --> MQTT --> Fuxa      FUXA(一個開源的 Web HMI / SCADA 自動化監控軟體)的專案設定檔 。 這份設定檔完整定義了 HMI 監控畫面的 後端通訊(MQTT 連線、點位標籤) 與 前端網頁圖形介面(SVG 畫布...