---
# System prepended metadata

title: 11_4 3N+1-2
tags: [DICE C]

---

---
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 %}