while 1: #一直循环
n = input('Input N:') #输入皇后个数
if n.lower() in ('exit'): #输入exit退出
break
n = int(n)
queenList = [0]*n #初始化一个长度为n的list,用于存放皇后,值代表皇后位置
#因为每行只可能有1个皇后,所以没必要用2维list
def setQueen(idx): #递归,用于放置每一行的queen,idx是行号
for i in range(n): #皇后位置从0到n-1取值
isOk=True
for j in range(idx): #循环判断这一行之前的所有行
if i in (queenList[j],queenList[j]-idx+j,queenList[j]+idx-j):#在直线和斜线上
isOk=False
break
if isOk: #如果跟之前的行都不在线上
queenList[idx]=i #在此位置放置一个皇后
if idx==n-1: #已经是最后一行
print(queenList) #打印结果
else: #不是最后一行
setQueen(idx+1) #继续放置下一行
setQueen(0) #从第一行开始放置
Python解N皇后问题
最新推荐文章于 2024-10-27 10:12:31 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
GPT-SoVITS
AI应用
GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果
263

被折叠的 条评论
为什么被折叠?



