• 八皇后问题


    自己在学习八皇后问题中遇到理解上有问题的地方加了注释,贴出来希望得到大家的指点:

     1 //---------------------------------------------
     2 //环境:vc6.0
     3 //时间:2015/9/15
     4 //用途:八皇后问题求解
     5 //作者:kangwei
     6 //---------------------------------------------
     7 #include <stdio.h>
     8 #include <malloc.h>
     9 
    10 void search(int *C, int n, int cur)                                //判断第 cur 行
    11 {
    12     int row, col;
    13     int ok;
    14     
    15     if(cur == n)                                                // 排完n个皇后,打印输出
    16     {
    17         printf("解:
    ");
    18         for( row = 0; row < n; row++ )
    19         {
    20             for(col = 0 ; col < n; col++ )
    21             {
    22                 if(C[row] == col)
    23                 {
    24                     printf("# ");
    25                 }
    26                 else
    27                 {
    28                     printf("0 ");
    29                 }
    30             }
    31             printf("
    ");
    32         }
    33     }
    34     else
    35     {
    36         for( col = 0; col < n; col++)                            // 在当前行 cur 枚举每一个位置(列)
    37         {
    38             ok = 1;
    39             C[cur] = col;
    40             for( row = 0; row < cur; row++)                        // 依次与前 cur 行的已放置的 皇后 判断是否冲突
    41             {
    42                 if( C[cur]==C[row] || C[cur]-C[row] == cur-row || C[cur]-C[row] == row-cur )
    43                 {
    44                     ok = 0;
    45                     break;
    46                 }
    47             }
    48             if(ok)
    49             {
    50                 search(C, n, cur+1);
    51             }
    52         }
    53     }
    54 }
    55 
    56 void HuangHou(int n)
    57 {
    58     int *C = (int *)malloc(sizeof(int)*n);
    59     search(C, n, 0);
    60     free(C);
    61 }
    62 
    63 int main()
    64 {
    65     HuangHou(8);
    66     return 0;
    67 }
  • 相关阅读:
    编程这几天出现的很2的问题!!!
    2020 8 1 每日总结
    2020 8 6 每日总结
    2020 8 7 读后感
    2020 8 4 每日总结
    2020 7 30 每日总结
    2020 8 3 每日总结
    2020 8 8 每日总结
    2020 8 2 每周总结
    2020 8 5 每日总结
  • 原文地址:https://www.cnblogs.com/OrdinaryMiracle/p/4810207.html
Copyright © 2020-2023  润新知