信管网案例分析

导航

n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、

2021年10月29日来源:信管网 作者:cnitpm

阅读下列说明和C代码,回答问题1至3,将解答写在答题纸的对应栏内。

【说明】

n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。

算法的基本思想如下:

将第i个皇后摆放在第i行,i从1开始,每个皇后都从第1列开始尝试。尝试时判断在该列摆放皇后是否与前面的皇后有冲突,如果没有冲突,则在该列摆放皇后,并考虑摆放下一个皇后;如果有冲突,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇后考虑在原来位置的下一个位置上继续尝试摆放皇后,……,直到找到所有合理摆放方案。

【C代码】

下面是算法的C语言实现。

(1)常量和变量说明



【问题1】(8分)

根据题干说明,填充C代码中的空(1)〜(4)。

【问题2】(3分)

根据题干说明和C代码,算法采用的设计策略为(5)

【问题3】(4分)

当n=4时,有(6)种摆放方式,分别为(7)。

信管网参考答案:

【问题1】

(1)queen[i]==queen[j]或其等价形式

(2)1

(3)Place(j)或其等价形式

(4)Nqueen(j+1)

【问题2】

回溯法

【问题3】

2个

(2413)

(3142)

查看解析:www.cnitpm.com/st/4171724130.html

相关推荐:

点击查看/下载:软件设计师历年真题汇总

点击查看:软件设计师在线培训课程免费试听课程

免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)

温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

分享至:
请使用浏览器的分享功能,把好文章分享给更多的人

信管网 - 信息系统项目管理专业网站

下载APP-在线学习

培训课程

0元畅享

考试题库

免费资料

APP下载