【模板】排列数字

给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。

现在,请你按照字典序将所有的排列方法输出。

输入格式

共一行,包含一个整数n。

输出格式

按字典序输出所有排列方案,每个方案占一行。

数据范围

1≤n≤7

输入样例:

1
3

输出样例:

1
2
3
4
5
6
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>

using namespace std;

const int N = 10;

int n;
int path[N];
bool st[N];

void dfs(int u)
{
if(u == n)
{
for(int i = 0; i < n; i ++) printf("%d ", path[i]);
puts("");
return;
}

for(int i = 1; i <= n; i ++)
if(!st[i])
{
path[u] = i;
st[i] = true;
dfs(u + 1);
st[i] = false;
}
}

int main()
{
cin >> n;

dfs(0);

return 0;
}

【模板】排列数字
https://piscesfinalizer.github.io/2021/02/17/【模板】排列数字/
作者
PiscesFinalizer
发布于
2021年2月17日
许可协议