# 遞迴 ---- ```C++ int GCD(int num1,int num2){ if(num2==0){ return num1; } return GCD(num2,num1%num2); } ``` --- ## Permutation: 0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0 ---- ``` C++ void backtrack(int depth, vector<int> tmp, vector<bool> &used) { if (depth == TOTAL_LENGTH) { for (int i = 0; i < TOTAL_LENGTH; i++) { cout << tmp[i] << " "; } cout << endl; return; } for (int i = 0; i < TOTAL_LENGTH; i++) { if (used[i]) { continue; } used[i] = true; tmp[depth] = a[i]; backtrack(depth + 1, tmp, used); used[i] = false; } } ``` ---- ``` C++ #include <bits/stdc++.h> using namespace std; int a[5] = {0, 1, 2, 3, 4}; const int TOTAL_LENGTH = 5; void backtrack(int depth, vector<int> tmp, vector<bool> &used) { if (depth == TOTAL_LENGTH) { for (int i = 0; i < TOTAL_LENGTH; i++) { cout << tmp[i] << " "; } cout << endl; return; } for (int i = 0; i < TOTAL_LENGTH; i++) { if (used[i]) { continue; } used[i] = true; tmp[depth] = a[i]; backtrack(depth + 1, tmp, used); used[i] = false; } } int main() { vector<int> tmp(TOTAL_LENGTH); vector<bool> used(TOTAL_LENGTH, false); backtrack(0, tmp, used); return 0; } ``` --- ## Combination 0 0 1 0 1 2 0 2 0 2 1 1 1 0 1 0 2 1 2 1 2 0 2 2 0 2 0 1 2 1 2 1 0 ---- ```C++ void backtrack(int depth, vector<int> tmp, vector<bool> &used) { for (int i = 0; i < depth; i++) { cout << tmp[i] << " "; } cout << endl; if (depth == 5) return; for (int i = 0; i < TOTAL_LENGTH; i++) { if (used[i]) { continue; } used[i] = true; tmp[depth] = a[i]; backtrack(depth + 1, tmp, used); used[i] = false; } } ``` ---- ```C++ #include <bits/stdc++.h> using namespace std; int a[5] = {0, 1, 2, 3, 4}; const int TOTAL_LENGTH = 3; void backtrack(int depth, vector<int> tmp, vector<bool> &used) { for (int i = 0; i < depth; i++) { cout << tmp[i] << " "; } cout << endl; if (depth == 5) return; for (int i = 0; i < TOTAL_LENGTH; i++) { if (used[i]) { continue; } used[i] = true; tmp[depth] = a[i]; backtrack(depth + 1, tmp, used); used[i] = false; } } int main() { vector<int> tmp(5); vector<bool> used(5, false); backtrack(0, tmp, used); return 0; } ``` --- 八皇后: ![image](https://hackmd.io/_uploads/H103CnSTT.png)
{"description":"Permutation:","title":"遞迴","contributors":"[{\"id\":\"0edb81ab-685c-4fd6-b83d-afa122b364db\",\"add\":2732,\"del\":18}]"}
    89 views