码迷,mamicode.com
首页 > 其他好文 > 详细

八皇后问题

时间:2017-03-18 22:50:23      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:code   span   printf   abs   logs   stdio.h   matrix   rac   cas   

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #define N 8
 4 bool matrix[N][N] = {0};
 5 void Print(bool m[N ][N ]){
 6     static int count = 1;
 7     printf("Case %d:\n", count++);
 8     for (int i = 0; i < N; i++) {
 9         for (int j = 0; j < N; j++)
10             m[i][j]==1?printf("Q") : printf(".");
11         printf("\n");
12     }
13     printf("\n");
14 }
15 bool Safety(bool m[N][N], int row, int col)
16 {
17     for (int i = 0; i < row ; i++)
18     {
19          for (int j = 0; j < N; j++)
20                    if(m[i][j]==1&&(j==col||abs(row-i)==abs(col-j)))
21                 return false;
22     }
23     return true;
24 }
25 void BackTrack(const int i) {
26     if (i >=N)
27         Print(matrix);
28     else
29         for (int j = 0; j < N; ++j) {
30             matrix[i][j] = 1;
31             if(Safety(matrix,i,j))
32                          BackTrack(i + 1);
33             matrix[i][j] = 0;
34         }
35 }
36 int main(void)
37 {
38     BackTrack(0);
39     return 0;
40 }

 

八皇后问题

标签:code   span   printf   abs   logs   stdio.h   matrix   rac   cas   

原文地址:http://www.cnblogs.com/jxust-jiege666/p/6576098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!