#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>usingnamespace std;constint N =10;int state[N];// 0還沒有放數(shù) 1-n中的一個數(shù)表示考慮bool used[N];// true表示用過 false表示沒用過int n;voiddfs(int u){if(u > n){for(int i =1; i <= n; i ++){printf("%d ", state[i]);}printf("\n");return;}// 遍歷n個數(shù),即當(dāng)前u位置可以放哪些數(shù)for(int i =1; i <= n; i ++){if(!used[i]){used[i]=true;state[u]= i;dfs(u +1);used[i]=false;state[u]=0;}}}intmain(){scanf("%d",&n);dfs(1);return0;}