现在我们有编号1 2 3 .,n的扑克和盒子一个盒子只能放一个扑克.请你写一个程序输出共有多少种不同的放法
深度优先搜索``
代码实现
#include<stdio.h>
int n;
int A[10]={0},book[10]={0};
void ch(int a)//a表示站在第几个盒子前,a小于10
{
if(a==n+1){
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[a]=i;
book[i]=1;
ch(a+1);
book[i]=0;
}
}
return;
}
int main()
{
scanf("%d",&n);
ch(1);
return 0;
}