首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。 【说明】 n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。 算法的基本思想如下: 将第i个皇
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。 【说明】 n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。 算法的基本思想如下: 将第i个皇
admin
2021-03-13
17
问题
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。
【说明】
n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。
算法的基本思想如下:
将第i个皇后摆放在第i行,i从1开始,每个皇后都从第1列开始尝试。尝试时判断在该列摆放皇后是否与前面的皇后有冲突,如果没有冲突,则在该列摆放皇后,并考虑摆放下一个皇后;如果有冲突,则考虑下一列。如果该行没有合适的位置,回溯到上一个皇后,考虑在原来位置的下一个位置上继续尝试摆放皇后……直到找到所有合理摆放方案。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
n:皇后数,棋盘规模为n×n
queen[]:皇后的摆放位置数组,queen
表示第i个皇后的位置,1≤queen
≤n
(2)C程序
#include
#define n 4
int queen[n+1];
void Show(){ /* 输出所有皇后摆放方案*/
int i;
printf("(");
for(i=1;i<=n;i++){
printf(" %d",(queen
);
}
printf(")\n");
}
int Place(int j){ /*检查当前列能否放置皇后,不能放返回0,能放返回1*/
int i;
for(i=1;i
if( (1)________ || abs(queen
-queen[j])==(j-i)){
return 0;
}
}
return(2)________;
}
void Nqueen(int j){
int i;
for(i=1;i<=n;i++){
queen[j]=i;
if( (3)________ ){
if(j==n){ /*如果所有皇后都摆放好,则输出当前摆放方案*/
Show()
}else{ /*否则继续摆放下一个皇后*/
(4)________;
}
}
}
}
int main(){
Nqueen(1);
return 0;
}
根据题干说明,填充C代码中的空(1)~(4)。
选项
答案
(1)queen[i]==queen[j]或等价形式 (2)1 (3)Place(i) (4)Nqueen(j+1)
解析
函数Place用于检查当前行j的queen[j]位置能否放置皇后,不能放则返回0,能放则返回1。能放的前提是前j-1行已经放置了互相不冲突的皇后,此时判断第j行的皇后queen[j]是否与前面的皇后有冲突,因此判断if中的两个条件为是否在同一列或同一对斜线。其中,abs(queen
-queen[j])==(j-i)表示两个皇后在同一斜线上,因此(1)中应填同一列,即queen
==queen[j]。在定义函数Place的时候己经注释说明,如果不能放返回0,能放返回1,因此(2)填1。
在函数Nqueen中放置皇后。从第一行第一列开始,每次放置皇后是判断是否可以放置的位置,因此(3)填Place(j)。如果能放且j是最后一行,则得到一个放置方案:如果能放且i不是最后一行,则需要放下一个皇后,因此(4)填写Nqueen(j+1)。这里用到了递归调用,因此没有显式回溯的语句。
转载请注明原文地址:https://kaotiyun.com/show/zoxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]某公司想建立一个Intranet,建立FTP服务器、DNS服务器、Email服务器、Web服务器和内部业务服务器,同时其他部门的工作人员也要联网,要求这些机器有的
根据网络拓扑和要求,解释并完成路由器Rl上的部分配置。Rl(config)#cryptoisakmpenable(启用IKE)R1(config)#cryptoisakmp(1)20(配置IKE策略20)R1(config-isakmp)#au
阅读以下说明,回答问题1~3,将解答填入对应的解答栏内。某公司的分支机构通过一条DDN专线接入到公司总部,地址分配和拓扑结构如图5-1所示。在两台路由器之间可以使用静态路由,也可以使用动态路由。在[问题1]和[问题2]中,所使用的是静态路
某单位网络内部部署有IPv4主机和IPv6主机,该单位计划采用ISNTAP隧道技术实现两类主机的通信,其网络拓扑结构如图5-1所示,路由器R1、R2、R3通过串口经IPv4网络连接,路由器R1连接IPv4网络,路由器R3连接IPv6网段。通过ISATAP隧
在ServerA的IPSec安全策略配置过程中,ServerA和ServerB-之间通信的IPSec筛选器“许可”属性设置为“协商安全”,并且安全措施为“加密并保持完整性”,如图4-4所示。根据上述安全策略填写图4-5中的空格,表示完整的IPSec数据包格
根据网络拓扑和需求说明,完成(或解释)路由器R1的配置。R1#configureterminal;进入全局配置模式R1(config)#interraceethernet0;进入端口配嗣模式R1(config-i
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】某单位网络拓扑结构如图3-1所示,其中Web服务器和DNS服务器均采用WindowsServer2008R2操作系统,客户端采用Windows操作系统,公司Web网站的域名
物理层的电气特性有多种标准,其中CCITT的V.11建议中规定(6)。常用的 EIARS-232接口的电气特性与CCITT的(7)兼容,在这种电路中,数据“1”的接口电平规定为(8)。在RS-232定义的接口线中,(9)表示计算机请求发送数据,(10)表示
ActiveXisthename(66)hasgiventoasetofobject-orientedconcepts,technologies,andtools.ItisimportanttonoticethatA
SDLCwasinventedbyIBMtoreplacetheolderBisynchronousprotocolforwideareaconnectionsbetweenIBMequipment.Avarieti
随机试题
某甲于2005年2月离家出走,此后便和家中失去了联系。其妻子经多方寻找,始终找不到甲的下落,遂于2009年5月向人民法院申请对甲宣告死亡,人民法院依法定程序,宣告甲死亡。问:宣告死亡具有什么样的法律效力?
根据健康信念模式(HBM),在促进吸烟者的戒烟行为时,首先应当
总价合同是合同计价的重要方式之一,下列选项不属于总价合同特点的是()。
公司、企业财务情况说明书至少应说明的事项包括()。
机关、团体、企业、事业单位、民办非企业性单位、有雇工的个体工商户等单位的职工连续工作6个月’以上的,享受带薪年休假。()(2014年)
当他_______时,你却成立一个人道主义俱乐部来讨论饥饿问题;当他_______时,你却大谈特谈他是否违反了道德规范。你看来如此神圣,如此善良,可人家从你那里得到了什么?填入划横线部分最恰当的一项是()。
人民警察义务的特点:第一,无论其职务高低,资历深浅,警种是否相同,都要履行法律所设定的人民警察义务;第二,国家公安机关、监察机关、司法机关及其他机关对人民警察的公务行为实行监督,对任何警务人员的违法行为都要追究法律责任。这主要体现出人民警察义务的( )。
What’syourearliestchildhoodmemory?Canyourememberlearningtowalk?Ortalk?Thefirsttimeyou【C1】______thunderorwatche
弗里德曼的货币需求函数及其政策含义。
InthepostColdWarworldfewarticleshaveinfluencedhowWesternpolicymakersviewtheworldmorethanSamuelHuntington’s19
最新回复
(
0
)