#include<stdio.h>
/*
变量说明:a[]-->相当于一个盒子
book[]-->用于标记
n-->1~n个数的全排列
*/
int a[10],book[10],n;
void dfs(int step)
{
if(step>n){ // 退出条件 当盒子数 > n时
for(int i=1;i<=n;i++)
printf("%d",a[i]);
printf("\n");
return;
}
for(int i=1;i<=n;i++){
if(book[i]==0){
a[step]=i;// 放入盒子
book[i]=1;// 标记这个牌已经走过
dfs(step+1);// 继续下一个盒子
book[i]=0;// 取消标记
}
}
}
int main()
{
scanf("%d",&n);
dfs(1);
return 0;
} #include<stdio.h>
/*
变量说明:a[]-->相当于一个盒子