#include <iostream>
using namespace std;
int n;
int vis[10]{0};
//c++引用传递需要显示指定为int *a,使用reference需要显示指定数组大小,所以可以使用指针方便一些
//相对于Java,可以使用&int修改int的值
void dfs(int deep, int *a) {
if (n + 1 == deep) {
for (int i = 1; i <= n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
for (int i = 1; i <= n; i++) {
if (!vis[i]) {
vis[i] = 1;
a[deep] = i;
//一开始没注意把deep + 1写成n + 1找了半天
dfs(deep + 1, a);
vis[i] = 0;
a[deep] = 0;
}
}
//回溯的部分
}
int main() {
cin >> n;
int a[10]{0};
dfs(1, a);
}


京公网安备 11010502036488号