输出全排列
这是全排列的模板题
输入一个正整数n(1<=n<=9),按照字典序输出1到n的全排列
输入格式:
一个正整数n
输出格式:
1到n的全排列,按照字典序
限制:
空间限制:128MByte 时间限制:2秒
样例:
输入: 3
输出: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
#include<bits/stdc++.h>
using namespace std;
int s[10],flag[10],n;
void dfs(int step){
if(step==n){
for(int i=0;i<n;i++){
printf("%d ",s[i]);
}
printf("\n");
return;
}else{
for(int i=1;i<=n;i++){
if(!flag[i]){
flag[i]=1;
s[step]=i;
dfs(step+1);
s[step]=0;
flag[i]=0;
}
}
}
}
int main(){
scanf("%d",&n);
dfs(0);
return 0;
}