水题
奉献上代码:
#include <bits/stdc++.h>
using namespace std;
int arr[10];
int vis[10];
int n;
void dfs(int x){
if(x>n){
for(int i=1;i<=n;i++){
cout<<" "<<arr[i];//也可以用printf("%5d", arr[i])
}
cout << endl;
return;//结束
}
for(int i=1;i<=n;i++){
if(vis[i] == 0){
arr[x] = i;
vis[i] = 1;
dfs(x+1);
vis[i] = 0;//回溯
}
}
}
int main(){
cin >> n;
dfs(1);
return 0;
}
其他题的输出可能不一样,改一下空格就行了
想要去看更详细的讲解的同学来着:算法 | 全排