b553. 4.Collatz 問題
標籤 :
通過比率 : 728人/759人 ( 96% ) [非即時]
評分方式:
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。

範例輸入 #1
3
5
7
範例輸出 #1
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 (阿普二信) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
40396 toseanlin@gm ... (Dr. SeanXD) b553
142 2024-05-17 11:34
28509 jeremydinger ... (164253) b553
561 2021-12-15 07:31
28471 alex950301 (alex0301) b553
很簡單的
610 2021-12-12 14:22