组合题 T2
在一个 8*8 的国际象棋棋盘上放置 8 个皇后,使得这 8 个皇后两两均不在同一行、同一列、同一条对角线上,求合法的方案数。
试补全程序
(1)①处应填()
A.N
B.N+1
C.N-1
D.8
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正确答案:
B
答案解析:
B,当放好 8 个皇后,方案数加一,然后返回。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(2).②处应填()
A.X
B.P[X]
C.HASHTABLE[X]
D.COUNT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正确答案:
C
答案解析:
C,这里是在判断第 X 列有没有放置皇后。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(3).③处应填()
A.ABS(X - P[PRE])
B.X-P[PRE]
C.P[PRE]-X
D.ABS(X)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正确答案:
A
答案解析:
A,这里是在判断对角线是否有皇后
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(4).④处应填()
A.H+1
B.N+1
C.COUNT+1
D.INDEX+1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正确答案:
D
答案解析:
D,去在下一行放下一个皇后。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(5).⑤处应填()
A.P[INDEX] = 0
B.HASHTABLE[X] = TRUE
C.HASHTABLE[X] = FALSE
D.P[INDEX]=1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正确答案:
C
答案解析:
C,在这里回溯,要将第 X 列标记为没有放置皇后
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
答案:BCADC