#include <iostream>
#include <vector>
void generatePermutations(std::vector<int>& nums, std::vector<bool>& used, std::vector<int>& permutation, int n) {
if (permutation.size() == n) {
// 输出当前的排列
for (int num : permutation) {
std::cout << num << " ";
}
std::cout << std::endl;
return;
}
for (int i = 0; i < n; ++i) {
if (!used[i]) {
used[i] = true;
permutation.push_back(nums[i]);
generatePermutations(nums, used, permutation, n);
used[i] = false;
permutation.pop_back();
}
}
}
void generateUniquePermutations(int n) {
std::vector<int> nums(n);
std::vector<bool> used(n, false);
std::vector<int> permutation;
// 初始化 nums 数组为 1 到 n
for (int i = 0; i < n; ++i) {
nums[i] = i + 1;
}
generatePermutations(nums, used, permutation, n);
}
int main() {
int n;
std::cin >> n;
generateUniquePermutations(n);
return 0;
}
标签: