八皇后问题的一解

 新葡亰操作系统     |      2020-01-22

八皇后的另一种解法

#include <stdio.h>
#include <conio.h>

   最近在这里的论坛看到了一个八皇后的问题,此题本人觉得这个题目是一种典型的递归算法
这个算法用一维数组就可以实现了,把数组的每个下标对应一个皇后所在的列位置,这样就可以排除了各个皇后在同一列的可能,
此题的思维是这样的,先在queue[0]位置放皇后 看这个数组的值是多少 就是在0列的第几行放皇后 最后输出的时候转化成二维数组就可以了,
最后要判断 每个皇后不能再同一行 也不能在同一对角线就可以了,要说其具体的思想 真的很难说,还是把代码贴上来给你们看看好了:
#include <stdio.h>
#include <conio.h>

#define TRUE 1
#define FALSE 0
#define MAXQUEEN 8
#define ABS(x)  ((x>0)?(x):-(x))

#define TRUE 1
#define FALSE 0
#define MAXQUEEN 8
#define ABS(x)  ((x>0)?(x):-(x))

int queen[MAXQUEEN];
int total_solution;

int queen[MAXQUEEN];
int total_solution;

void place(int);
int attack(int,int);
void output_solution();

void place(int);
int attack(int,int);
void output_solution();

void main(void)
{
    place(0);
}

上一篇:从欧美到中国 微软反垄断缠满身 下一篇:没有了