输入n(1<=n<=9),由1~n组成的所有不重复的数字序列,每行一个序列,相邻数字无需空格隔开。
输入:
3;
输出:
123
132
213
231
312
321
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <string>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <map>
using namespace std;
int n;
int a[11];
bool vis[11];
void out()
{
for(int i=1;i<=n;i++) cout<<a[i];
cout<<endl;
}
void dfs(int k)
{
if(k>n) {out(); return;}
for(int i=1;i<=n;i++){
if(vis[i]==true){
a[k]=i;
vis[i]=false;
dfs(k+1);
vis[i]=true;
}
}
}
int main()
{
cin>>n;
memset(vis,true,sizeof(vis));
dfs(1);
}