题解(仅23行)
2026-01-28 17:05:28
发布于:广东
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int vis[15],a[15],n;
void dfs(int x){
if(x==n+1){//递归边界,到n+1次时停下
for(int i=1;i<=n;i++) cout<<setw(5)<<a[i];
cout<<endl;
return;
}
for(int i=1;i<=n;i++){
if(!vis[i]){
vis[i]=1;//标记i已拿
a[x]=i;//第x轮拿了i号球
dfs(x+1);
vis[i]=0;//回溯
}
}
}
int main(){
cin>>n;
dfs(1);
return 0;
}
这里空空如也



有帮助,赞一个