使用void dfs(int n)函数生成(以5的全排列为例):
#include "iostream"
using namespace std;
#define maxn 5;
int ans[5]={1,2,3,4,5};
int vis[10]={0};
void dfs(int n){
if(n==6){
for (int i = 1; i <= 5; ++i) {
cout<<ans[i];
}
cout<<endl;
return;
}
for (int i = 1; i <=5 ; ++i) {
if(!vis[i]){
ans[n]=i;
vis[i]=1;
dfs(n+1);
vis[i]=0;
}
}
}
int main(){
dfs(1);
return 0;
}