---
# System prepended metadata

title: 無標題

---


## 🧮 組合列舉講義：從 1~n 中選 k 個數字

[這邊是題目](http://120.101.182.21/d/hd112/p/64)

---

### ✅ 題目目標

給你兩個數字 `n` 和 `k`，請列出從 1 到 n 中選出 k 個數字的**所有組合**，而且每個組合要依照編號從小到大排列，不能重複或顛倒順序。

---

### 🔍 什麼是組合？

- **組合（Combination）** 是從一堆東西裡面「選出幾個」，但不管順序。  
  - 例如：從 {1, 2, 3} 選兩個  
    - 合法的組合有：`1 2`, `1 3`, `2 3`  
    - `2 1` 和 `3 1` 就不重複列出，因為跟前面重複。

---

### 🎯 輸出條件

- 所有組合都要從小到大列出（例如 `1 3`，不要寫成 `3 1`）  
- 各組合之間的順序也要照「字典序」排列  
- 每組答案用空格分隔

---

### 💡 解題思路

1. **一層層選數字**：  
   - 從 1 開始，依序往上選  
   - 每次選下一個數字時，只能從比前一個大的數開始選，避免重複

---

### 🧪 範例

假設 n = 4，k = 2  
1 到 4 有：1, 2, 3, 4，要選兩個

合法的組合是：
```
1 2  
1 3  
1 4  
2 3  
2 4  
3 4
```

---

### 📘 提示

- 每次加入一個數字後，可以把它放進一個暫時的變數或陣列裡  
- 當選到第 k 個數字時，就把目前這組數字印出  
- 選完一個要「退回一步」，再試下一個數，這就叫「回朔」

---

### 🧭 練習建議

- 試著自己用紙寫出 n = 5, k = 3 時的所有組合  
- 再用程式寫出來，比對看看有沒有寫對

---

有任何組合題的變形都可以從這個邏輯出發：**從小到大依序選，不能重複**，掌握這一點就可以解很多類似的題目了！