源代码:
#include<iostream>
#include<cstring>
using namespace std;
int a[110];
bool v[110];
int n;
void DFS(int k){
if(k==n+1){
for(int i=1;i<n;i++) printf("%5d ",a[i]);
printf("%5d\n",a[n]);
}
else{
for(int i=1;i<=n;i++){
if(v[i]==0){
v[i]=1;
a[k]=i;
DFS(k+1);
v[i]=0;
a[k]=0;
}
}
}
}
int main(){
scanf("%d",&n);
memset(v,0,sizeof(v));
DFS(1);
return 0;
}