返回题解分享
讨论 / 题解分享/ 帖子详情

全排列 - 题解

#include <bits/stdc++.h>
using namespace std;
int a[20], x, n;

int b[20];


void dfs(int x) {
if (x > n) {
for (int i = 1; i < n; i++)
cout << a[i] << " ";
cout << a[n] << endl;
return;
}
for (int i = 1; i <= n ; i++) {

if (b[i] == 0) {
b[i] = 1;
a[x] = i;
dfs(x + 1);
b[i] = 0;
}
}


}

int main() {
cin >> n;
dfs(1);
return 0;
}
0 回复 0 转发 0 喜欢 4 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!