全排序
#include<bits/stdc++.h>
using namespace std;
const int Max=100;
int n,p[Max];
bool hashTable[Max]= {0}; //散列
void generateP(int index) {
if(index==n+1) {
for(int i=1; i<=n; i++) {
cout<<p[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=1; i<=n; i++) {
if(!hashTable[i]) {
p[index]=i;
hashTable[i]=1;
generateP(index+1); //递归不能用index++,否则不能回溯
hashTable[i]=0;
}
}
}
int main() {
cin>>n;
generateP(1);
return 0;
}
using namespace std;
const int Max=100;
int n,p[Max];
bool hashTable[Max]= {0}; //散列
void generateP(int index) {
if(index==n+1) {
for(int i=1; i<=n; i++) {
cout<<p[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=1; i<=n; i++) {
if(!hashTable[i]) {
p[index]=i;
hashTable[i]=1;
generateP(index+1); //递归不能用index++,否则不能回溯
hashTable[i]=0;
}
}
}
int main() {
cin>>n;
generateP(1);
return 0;
}