# 遞迴
----
```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;
}
```
---
八皇后:

{"description":"Permutation:","title":"遞迴","contributors":"[{\"id\":\"0edb81ab-685c-4fd6-b83d-afa122b364db\",\"add\":2732,\"del\":18}]"}