代码:(控制台打印不了92种情况,只打印前10种)
1 #include2 #include 3 #include 4 #define ok 1 5 #define error 0 6 using namespace std; 7 8 9 int a[9][9]={ 0};10 int num=0;11 12 int Ifblock(int x,int y) //判断有没有产生冲突13 {14 int i,j,k;15 j=y;16 k=y;17 for(i=x-1;i>0;i--)18 {19 if(a[i][y]==1)20 return error;21 if((--j)>0&&a[i][j]==1)22 return error;23 if((++k)<9&&a[i][k]==1)24 return error;25 }26 return ok;27 }28 29 int DFS(int step) //深度优先搜索核心代码30 {31 int i,j,k;32 if(step==9)33 {34 num++;35 if(num<=10)36 {37 for(j=1;j<9;j++)38 {39 for(k=1;k<9;k++)40 {41 printf("%2d",a[j][k]);42 }43 cout<<'\n';44 }45 cout<<'\n'<