习题2.8 输出全排列
习题2.8 输出全排列
#include<bits/stdc++.h>
using namespace std;
int n;
vector<int> arr;
vector<int> aaa;
vector<bool> v;
int num = 0;
void dfs(int temp){if (temp == n){arr.push_back(num);return ;}for (int i = 0; i < n; i ++){if (!v[aaa[i]]){v[aaa[i]] = true;num = num * 10 + aaa[i];dfs(temp + 1);num = (num - aaa[i]) / 10;v[aaa[i]] = false;}}
}int main(){cin >> n;v.resize(n + 1, false);for (int i = 1; i <= n; i ++){aaa.push_back(i);}dfs(0);for (auto x : arr) cout << x << endl;return 0;
}