【算法】全排列
#include<stdio.h>
int a[10],used[10];
int n=0;
void dfs(int nth){
if(nth==n){
for(int i=0;i<n-1;i++)printf("%d,",a[i]);
printf("%d\n",a[n-1]);
return;
}
for(int i=1;i<=n;i++){
if(used[i]==0){
used[i]=1;
a[nth]=i;
dfs(nth+1);
used[i]=0;
}
}
}
int main(){
scanf("%d",&n);
dfs(0);
}
输入5,结果将会是:
D:\>dfs
3
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1