关于问题的描述:n皇后问题是
来源于国际象棋中的皇后,通常叫8皇后问题,即在N*N的棋盘上,放置N个皇后,要求每一横行,每一列,每一对角线上均只能放置一个皇后,求可能的方案及方案数。
下面对n皇后问题进行分析:
1.一下是一个8*8的棋盘,从第一行开始放皇后,第一行皇后可以任意放,但每一行的方法都会影响后面的皇后放置
2.当第一行放好之后开始放的第2,3,4,5,6,7,8;但第一行会影响第二行,第二行会影响第三行的放置,第三行会影响的四行的放置.........
3.就这样在每一行的皇后可以有8种选择,但合法的是固定的,所以当本行出错时就得返回上一行检查或从新放置,如果上一行没有位置可行时,就得继续返回....一直返回知道返回第一行时,说明第一个皇后放在第一行不合适,然后到下一个位置,直到合适为止。
4.第一行放好继续放第二行,当某一行出错时,回退到上一行,直到放好然后继续往下进行,直到放置到最后一行结束。
代码实现思路:
一:判断皇后放置位置合法性
1.采用一维数组的下标表示第n个皇后(等同于第n行的皇后),数组元素为皇后的所在列。