题目描述
对1~nn进行全排列,并按字典序从小到大输出。
输入格式
只有一行,一个整数nn
输出格式
符合题目要求的输出,每种排列情况占一行。
样例数据
样例输入1
3
样例输出1
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
数据范围
对于100%的数据,1≤n≤81≤n≤8.
#include<bits/stdc++.h>
using namespace std;
int n;
bool vis[15];
int step=1;
int a[15];
int main() {
if(step==1) {
cin>>n;
}
int i;
if(step-1==n) {
for(i=1; i<=n; i++)
if(i==1)
printf("%1d",a[i]);
else
printf("%2d",a[i]);
printf("\n");
}
for(i=1; i<=n; i++) {
if(vis[i]==0) {
vis[i]=1;
a[step]=i;
step++;
main();
step--;
vis[i]=0;
}
}
return 0;
}