import os
import sys
# 请在此输入您的代码
count=0#方案数
def queen(A,n=0):#现在行(从行开始,一行一行放)
global count#全局变量
if n==len(A):
count+=1
return
for col in range(len(A)):#现在列(遍历该行的每一列)
A[n]=col#存放该列为当前答案
flag=1
for row in range(n):#遍历之前行
if A[row]==col or (abs(col-A[row])==n-row and n-row<3):#不满足,撤回
flag=0
break
if flag==1:#满足
queen(A,n+1)#开始下一行
queen([0]*int(input()))
print(count)
蓝桥杯之受伤的皇后
于 2023-03-30 20:20:48 首次发布
该代码实现了一个解决N皇后问题的递归算法,通过放置皇后并检查冲突来寻找所有可能的解决方案。全局变量count记录了可行解的数量。函数queen()在给定的棋盘A上尝试放置皇后,并递归处理下一行。当所有行都填满时,count增加。最后输出总解决方案数。
摘要由CSDN通过智能技术生成