b553: 4.Collatz 問題
標籤 :
通過比率 : 95% (214 人 / 226 人 ) (非即時)
評分方式:
Tolerant

最近更新 : 2015-09-17 23:12

內容

問題描述
 CollatzCollatz CollatzCollatz 問題 (又稱 「3n +1」問題 ),一開始給定個大於 1的正整數 n,其 變換方法如下:
(甲)若 n為偶數 (即 n可被 2整除 ),則把 n除以 2,即 n→n÷2。
(乙)若 n為大於 1的奇數 (即 n不可被 2整除 ),則把 ,則把 n乘 3再加 1,即 n→ (3n +1)。
(丙)若 n為 1,則 結束 。
 比如說從 5開始的話, 其變換 的步驟如下: 5 → 5×3+1=16 → 16 ÷2=8 → 8÷2=4 → 4÷2=2 → 2÷2=1
其中一共做了 5次的變換,最後停止在 1。

 再舉個例子,最開始的數取 7,我們得到下面的序列:
7→22 →11 →34 →17 →52 →26 →13 →40 →20 →10 →5→16 →8→4→2→1
這次複雜了一點, 其中一共做了 16 次的變換, 但是 我們最終還停止在 1。

 這個特性是 1937 年數學家 CollatzCollatz CollatzCollatz 所提出來的一個 所提出來的一個 猜想 :所有正整數經由這 :所有正整數經由這 :所有正整數經由這 個變換,最後會停止在 1。

 現在 要請你寫一個程式 來求出轉換的次數 。

輸入說明

測試資料為1~10列以EOF結束,每列為一個 正整數 n,其值介於 2 至 30000 。

輸出說明

對每列輸入,輸出資料為一個正整數, 共要做多少次變換n才會停止在 1。

範例輸入
3
5
7
範例輸出
7
5
16
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (20%): 1.0s , <1K
公開 測資點#2 (20%): 1.0s , <1K
公開 測資點#3 (20%): 1.0s , <1K
公開 測資點#4 (20%): 1.0s , <1K
提示 :
標籤:
出處:
103學年度北二區桃竹苗基區資訊學科能力競賽 [編輯:
p3a_owhj (阿普二信)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」