#include <iostream> #include <cstring> using namespace std; const int maxn = 1e3; int vis [maxn]; int p [maxn]; int n; int t = 0 ; void dfs(int x) { if(x == n + 1 ) { for(int i = 1 ; i <= n; i ++ ) cout << p [i] << " " ; cout << endl; 戻る; } for(int i = 1 ; i <= n; i ++ ) { if(!vis [i]) { 表示[i] = 1 ; p [x] = i; dfs(x + 1 ); 表示[i] = 0 ; } } } int main() { while(cin >> n) { memset(vis、0、sizeof (vis)); dfs(1 ); } }