该题用dfs的思想来实现
#include<bits/stdc++.h>
using namespace std;
int a[11]; //存储输出数字
int flag[11]={0};//标记该数字是否输出
int N;
void dfs(int step){
if(step==N+1){
for(int i=1;i<=N;i++){
cout<<a[i];
}
cout<<endl;
return ;
}
for(int i=1;i<=N;i++){
if(flag[i]==0){
a[step]=i;
flag[i]=1;
dfs(step+1);
flag[i]=0;
}
}
return ;
}
int main(){
cin>>N;
dfs(1);
return 0;
}