代码:
#include<iostream>
#include<algorithm>
using namespace std;
int n;
const int N=10;
bool used[N]; //表示当前数字是否用过
int path[N]; //表示数字排列结果
void dfs(int x)
{
if(x==n) //满足条件输出
{
for(int i=0;i<n;++i)
{
cout<<path[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=1;i<=n;i++)
{
if(used[i]==false) //当前数字i未使用过
{
path[x]=i; //填入i
used[i]=true; //i已经使用过
dfs(x+1); //寻找下一位
used[i]=false; //已经完成一个数字排列,将所有数字恢复为未被使用
}
}
}
int main(){
cin>>n;
dfs(0);
return 0;
}