题目:1~n个自然数的全排列
算法:深搜
程序:
#include<bits/stdc++.h>
using namespace std;
int n,a[10],b[10]={0};
void print(){
for(int i=1;i<=n;i++){
printf("%5d",a[i]);
}
printf("\n");
}
void dfs(int t){
if(t>n){
print();
}
else{
for(int i=1;i<=n;i++){
if(b[i]==0){
a[t]=i;
b[i]=1;
dfs(t+1);
b[i]=0;
}
}
}
}
int main(){
scanf("%d",&n);
dfs(1);
return 0;
}