皇后问题的计算机求解
哪位知道皇后问题列举法的具体算法
搜索更多相关的解决方案:
皇后 计算机 求解
----------------解决方案--------------------------------------------------------
小弟问一句,皇后问题是这样的一个问题啊???
----------------解决方案--------------------------------------------------------
N皇后问题是指在N*N的棋盘上安置N个皇后使其互不攻击(任意两个皇后不在同一行\同一列同一斜线)
----------------解决方案--------------------------------------------------------
参照数据结构课本
----------------解决方案--------------------------------------------------------
论坛精华里的(不是我写的,直接复制)
[CODE]
#include
#include
#define MAX 8
int board[MAX]; //皇后坐标数组,MAX为行数,board[MAX]为列数
int sum=0;
void show_result();
int check_cross(int n);
void put_chess(int n);
main()
{
put_chess(0);
printf("%d",sum);
getch();
return;
}
void show_result()
{
int i;
for(i=0;i
printf("(%d,%d)",i,board[i]);
printf("\n");
sum++;
}
int check_cross(int n)
{
int i;
for(i=0;i
{
if(board[i]==board[n]||(n-i)==abs(board[i]-board[n]))
return 1;
}
return 0;
}
void put_chess(int n)
{
int i;
for(i=0;i
{
board[n]=i;
if(!check_cross(n))
{
if(n==MAX-1)
show_result();
else
put_chess(n+1);
}
}
}
[/CODE]
----------------解决方案--------------------------------------------------------
真好
----------------解决方案--------------------------------------------------------
谢谢!!五楼的程序我运行了,可以完成,只要在解说内容的前后加/**/就可以了.
----------------解决方案--------------------------------------------------------