题解,两种
2024-07-27 16:40:27
发布于:北京
23阅读
0回复
2点赞
//偷鸡代码,CSP别用
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
if(n==1) cout<<1;
if(n==2) cout<<1<<" "<<2<<endl<<2<<" "<<1;
if(n==3){
cout<<1<<" "<<2<<" "<<3<<endl;
cout<<1<<" "<<3<<" "<<2<<endl;
cout<<2<<" "<<1<<" "<<3<<endl;
cout<<2<<" "<<3<<" "<<1<<endl;
cout<<3<<" "<<1<<" "<<2<<endl;
cout<<3<<" "<<2<<" "<<1;
}
return 0;
}
//正常代码,CSP随便用
#include<iostream>
using namespace std;
int a[101],n; //a[101]记录每一种全排列的情况.
int vis[101]; //标记这个数没有被选过.0为没选过,1为选过.
void dfs(int x){
if(x==n){
for(int i=0;i<n;i++) cout<<a[i]<<" ";
cout<<"\n";
return ;
}
for(int i=1;i<=n;i++){
if(!vis[i]){
vis[i]=1;
a[x]=i;
dfs(x+1);
vis[i]=0;
}
}
}
int main(){
cin>>n;
dfs(0);
return 0;
}
这里空空如也
有帮助,赞一个