c语言sscanf函数的用法是什么
305
2022-08-26
python 8皇后问题
今天想到了8皇后问题,所以特地来实现了一下,所谓的8皇后,就是在8*8的网格里面放皇后,然后任意两个皇后不能同行,同列或者同斜线。
分析
用一个一维数组表示8皇后,其中索引为行号,值为列号;实现一个conflict函数,判断一维数组里面的值是同列,或者同对角线剩下的就是按照行递归,每一次递归的时候找合适的列填值就行了。终止条件就是填到了n-1行打印输出就行了
代码
def conflict(q,x,y): for i in range(x): if(q[i]==y or abs(i-x)==abs(q[i]-y)): return True return False def n_queen(n,q,row): for i in range(n): if(not conflict(q,row,i)): q[row]=i if(row==n-1): print(q) else: n_queen(n,q,row+1)if __name__ == "__main__": n=8 q=[None for i in range(n)] n_queen(n,q,0)
参考文献
N皇后问题的python实现
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~