排列组合
组合:
#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[10];
void dfs(int dep,int last){
if(dep>n){
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=last+1;i<=m;i++){
a[dep]=i;
dfs(dep+1,i);//last=3
// a[dep]=0;
}
}
int main(){
cin>>m>>n;
dfs(1,0);
}
```5 3
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
# 排列
``` js
#include<bits/stdc++.h>
using namespace std;
int n;
int a[10],vis[10];
void dfs(int dep){
if(dep>n){
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=1;i<=n;i++){
if(vis[i])
continue;
a[dep]=i;
vis[i]=1;
dfs(dep+1);//last=3
vis[i]=0;
}
}
int main(){
cin>>n;
dfs(1);
}
3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1 >
