--- tags: DICE C --- 11_4 3N+1-2 === > [name=CHAWTeam] --- 目錄:[DICE C語言程式破解](https://hackmd.io/@CHAWTeam/DiceC) --- **題目** ``` 有一個演算法: 輸入整數n, 當n等於1時停止 如果n是奇數,則n=3n+1 其餘的狀況,則n=n/2 例如: 輸入22,則會印出下列的數列: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 這個演算法, 目前被推測認為在給予任何整數輸入值時皆可以停下來(也就是說最後都能夠輸出1)。 儘管這個演算法還蠻簡單的,但卻無法確定這個推測是否正確; 然而可以確定的是,在輸入值n介於0到1,000,000之間時,這個推測是正確的。 (實際上,還有比0到1,000,000更多的輸入值可以讓演算法停下來) 給予一個正整數n,我們可以算出總共會有幾個數字會被印出(包含1), 而這個總數就被稱作n的迴圈長度(cycle-length of n)。 在上面的範例中,22的迴圈長度為16。 問題: 對任2個正整數i、j,由小到大列出i與j之間的迴圈數,與迴圈次數。 提示: 要先判斷i與j的大小關係。 以下提供 2 種範例參考,你的輸出只會是其中一種: 輸入範例1: 10 7 輸出範例1: 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 迴圈次數16 8 4 2 1 迴圈次數3 9 28 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 迴圈次數19 10 5 16 8 4 2 1 迴圈次數6 輸入範例2: 4 6 輸出範例2: 4 2 1 迴圈次數3 5 16 8 4 2 1 迴圈次數6 6 3 10 5 16 8 4 2 1 迴圈次數9 ``` **程式碼** ```c= ``` **輸出** ``` ``` --- [查看我們在HackMD上的所有筆記](https://hackmd.io/@CHAWTeam) 目錄:[DICE C語言程式破解](https://hackmd.io/@CHAWTeam/DiceC) 上一篇:[11-8 BMI-3](https://hackmd.io/@CHAWTeam/DiceC-11-8) 下一篇:[11-10 判斷閏年](https://hackmd.io/@CHAWTeam/DiceC-11-10) --- {%hackmd Iiu5mOixR7yWkPHKCkabBg %} <iframe class="LikeCoin" height="235" src="https://button.like.co/in/embed/chawteam/button?referrer=https://hackmd.io/@CHAWTeam/DiceC-11-9" width="100%"></iframe> --- {%hackmd i1nMRrZcTFmTvoF897K9zg %}