#include <iostream> #include <string.h> #include <math.h> #include <iomanip> #include <algorithm> #include <vector> #include <deque> #include <list> #include <queue> #include <stack> #define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); using namespace std; typedef long long ll; const int N = 10; int n; bool state[N];//确认是否可填入 int arr[N];//存放答案123,132 //x表示当前枚举到了哪个位置 void dfs(int x) { if (x > n) { for (int i = 1; i <= n; i++) cout << setw(5) << arr[i]; cout << endl; return ; } for (int i = 1; i <= n ; i++) { if (!state[i]) { state[i] = true; arr[x] = i; dfs(x + 1); state[i] = false; arr[x] = 0; } } } int main() { scanf("%d", &n); dfs(1); return 0; }
//const int N = 20; // //int n; //int state[N];//0为?1为选,2为不选 // //void dfs(int x) {//x表示枚举到哪个位置 // if (x > n) { // for (int i = 1; i <= n; i++) { // if (state[i] == 1) cout << i << " "; // } // cout << endl; // return ; // } // //选 // state[x] = 1; // dfs(x + 1); // state[x] = 0;//回溯 // //不选 // state[x] = 2; // dfs(x + 1); // state[x] = 0; //} // //int main() { // cin >> n; // dfs(1); // return 0; //}