1 #include<iostream>
2 #include<cmath>
3 #include <algorithm>
4 using namespace std;
5 int n,m;
6 int a[10];
7 void Perm(int list[] , int k ,int m)
8 {
9 //list 数组存放排列的数,K表示层 代表第几个数,m表示数组的长度
10 if(k==m)
11 {
12 //K==m 表示到达最后一个数,不能再交换,最终的排列的数需要输出;
13 for(int i=0 ;i<=m ;i++)
14 cout<<list[i];
15 cout<<endl;
16 }
17 else{
18 for(int i=k;i<=m;i++)
19 {
20 swap(list[i],list[k]);
21 Perm(list,k+1,m);
22 swap(list[i] , list[k]);
23 }
24 }
25
26 }
27 int main()
28 {
29 cin>>n;
30 for(int i=0;i<n;i++)
31 a[i]=i+1;
32 m=n-1;
33 Perm(a,0,m);
34 return 0;
35 }