八皇后问题是C语言算法的一个经典例子;
它要求解的问题是,
以国际象棋为背景,有八个皇后(八个棋子),如何在 8*8 的棋盘中放置八个皇后,使得任意两个皇后都不在同一条横线、纵线或者斜线上。
根据资料,答案不止一个,共有92个;可以有92种摆法;
第一个答案应该是如下的,
下面用mfc画一个图形,来表达此问题;先理解问题,有时间再求解;
void CBhhView::OnDraw(CDC* pDC)
{
CBhhDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int w=50, h=50;
int startx=50, starty=50;
int len;
CPoint pt1, pt2;
len = w*8;
pt1.x = startx, pt1.y=starty;
pt2.x = startx + len;