八皇后问题
Time Limit:1000MS Memory Limit:65536K
Total Submit:18 Accepted:14
Description
经典的八皇后问题,在一个8*8的棋盘上放置8个皇后,使得不能互相攻击到,皇后的攻击范围的同一行,同一列以及同一个斜线。要求输出所有不会互相攻击到的摆放方式,所有通过旋转,对称都方式得到的摆放方式均认为是不同的摆放方式。棋盘被编号为0-7行,0-7列。
Input
无输入。
Output
每行一个数字代表摆放方式,如01234567代表从第0行放在0列,第1行放在1列,
第2行放在2列,按照升序输出。
Sample Input
无
Sample Output
04752613
05726314
06357142
06471352
…
只给出部分输出…都给了可以直接拷贝了…
Source
[Submit] [Go Back] [Status] [Discuss]
#include <stdio.h>
#include <stdlib.h>
#define max 8
int queen[max], sum=0; /* max为棋盘最大坐标 */
void show() /* 输出所有皇后的坐标 */
{
int i;
for(i = 0; i < max; i++)
{
printf("%d", queen[i]);
}
printf("\n");
sum++;
}
int PLACE(int n) /* 检查当前列能否放置皇后 */
{
int i;
for(i = 0; i < n; i++) /* 检