N皇后问题 checker

本文通过C语言实现了一种使用深度优先搜索算法解决N皇后问题的方法。代码中,利用数组记录皇后的位置及行、列、对角线的占用情况,通过递归搜索找到所有可能的解,并输出前三个解及总解数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

N皇后问题 checker

程序设计

程序分析 

系列文章


N皇后问题 checker

在一个N*N的国际棋盘上,放置N个皇后,使她们相互之间不能进攻(任意两皇后不能位置同一行、同一列、同一斜线)。
因为每行只有一个皇后,我们可以用一行N个数值来表示N*N棋盘上皇后位置。
结果中第i列的数值j表示棋盘上第[i,j]位置上有一个皇后。
2 4 6 1 3 5
表示棋盘上第[1,2]、[2,4]、[3,6]、[4,1]、[5,3]、[6,5]位置上有一个皇后。

Input

N
(6≤N≤13)

Output

前三行为先得到的三组解,
每组解为N个数,之间用空格隔开。
最后一行为总解数。

Sample Input

6

Sample Output

2 4 6 1 3 5
3 6 2 5 1 4
4 1 5 2 6 3
4

Hint

对行、列、\斜 、/斜进行编号,然后用下标标记法直接查找判重

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Want595

感谢小伙伴的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值