八皇后问题

package quess;
/**
 * 由于八个皇后的任意两个不能处在同一行,那么这肯定是每一个皇后占据一行。
 * 于是我们可以定义一个数组ColumnIndex[8],数组中第i个数字表示位于第i行的皇后的列号。
 * 先把ColumnIndex的八个数字分别用0-7初始化,接下来我们要做的事情就是对数组ColumnIndex做全排列。
 * 由于我们是用不同的数字初始化数组中的数字,因此任意两个皇后肯定不同列。
 * 我们只需要判断得到的每一个排列对应的八个皇后是不是在同一对角斜线上,
 * 也就是数组的两个下标i和j,是不是i-j==ColumnIndex[i]-Column[j]或者j-i==ColumnIndex[i]-ColumnIndex[j]。 
 *
 */




posted on 2012-03-18 13:43  c语言源码  阅读(287)  评论(0编辑  收藏  举报

导航