【正经题解】数字全排列
2024-02-21 17:37:07
发布于:浙江
38阅读
0回复
0点赞
#include <iostream>
using namespace std;
typedef int Integer;
const int MAX_N = 100;
Integer n, arr[MAX_N], visited[MAX_N];
// 递归生成全排列
void generatePermutations(Integer position) {
if (position == n + 1) {
// 输出当前全排列
for (Integer i = 1; i <= n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return;
}
for (Integer i = 1; i <= n; i++) {
if (visited[i] == 0) {
visited[i] = 1; // 标记为已使用
arr[position] = i; // 选择当前元素
generatePermutations(position + 1); // 递归生成下一个元素
visited[i] = 0; // 回溯,取消标记
}
}
}
int main() {
cin >> n;
generatePermutations(1);
return 0;
}
这里空空如也
有帮助,赞一个