八皇后问题:在8×8格的国际象棋上摆放八个皇后,任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
将棋盘抽象为4 * 4到20 * 20大小的矩阵
输入样例:
请输入棋盘的大小(4 ~ 20):
4
输出样例:
Solution: 1
0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 0
Solution: 2
0 0 1 0
1 0 0 0
0 0 0 1
0 1 0 0
输入样例2:
请输入棋盘的大小(4 ~ 20):
8
输出样例2(部分)(共92种):
Solution: 91
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
Solution: 92
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0
代码如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX 20//棋盘大小为小于等于 20 * 20
//定义八皇后结构体
typedef struct queen {