 复制num = 0 def is_ok(queen,利用 row): for r in range(1, row): # 第 r 行与第 row 行皇后在同一列,冲突 if queen[r] == queen[row]: returnFalse t = abs(queen[r] - queen[row]) # 第 r 行与第 row 行皇后在同一斜线,皇后冲突 # 如果 2 个皇后所在位置的问题行差与列差相同,WordPress模板则在同一斜线 if t == abs(r - row): returnFalse returnTrue def find(queen,利用 row): global num # 每一行都从第一列到第八列进行尝试 for col in range(1, (8+1)): queen[row] = col # 判断是否满足条件 if is_ok(queen, row): if row == 8: num += 1 return # 如果没有到第八行,则继续递归 find(queen,皇后 row + 1) # Python列表下标从0开始,网站模板为了从1开始,问题所以这样 queen = [0,利用1,2,3,4,5,6,7,8] find(queen, 1) print(result is , num) 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31. |