#include<iostream> #define N 15 using namespace std; int n,ans[N],visit[N]; void DFS(int depth) { int i,j; for(i=1;i<=n;i++) { if(!visit[i])//看哪个数字未被访问就访问之 { visit[i]=1;//标记为已访问 ans[depth]=i;//将该数字填表 if(depth<n)//如果没有填到n DFS(depth+1);//填depth+1 else//如果填表完毕 { for(j=1;j<=n;j++)//输出结果 cout<<ans[j]<<" "; cout<<endl; } visit[i]=0;//访问完毕返回标记为可访问 } } } int main() { while(cin>>n) { memset(visit,0,sizeof(visit)); DFS(1);//从1开始往后填表 } return 0; }