首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。 【说明】 n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。 算法的基本思想如下: 将第i个皇
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。 【说明】 n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。 算法的基本思想如下: 将第i个皇
admin
2021-03-13
40
问题
阅读下列说明和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)的设备名称。在HFC双向网络中一般采用什么载波调制方式?
请分别说出(1)与(2)的设备名称。目前常见宽带接入的方式有哪几种?
阅读以下有关网络规划的叙述,回答问题1、问题2和问题3,把解答填入对应栏内。网络工程是一项复杂的系统工程,一般可分为网络规划、网络设计、工程实施、系统测试验收和运行维护等几个阶段。网络规划是在需求分析的基础上,进行系统可行性分析和论证,以确定网络总体方案
(1)和(2)空缺名称填写在答题纸对应的解答栏内。目前多路复用有哪几种方式?
请你分配合适的子网地址,要求地址不能浪费。写出路由器R1的路由表(3)
Linux系统采用了树型多级目录来管理文件,树型结构的最上层是根目录,其他的所有目录都是从根目录生成的。通过Samba可以实现基于Linux操作系统的服务器和基于Windows操作系统的客户机之间的文件、目录及共享打印服务。
阅读以下说明,回答问题1和问题2,将解答填入对应的解答栏内。某单位新购近一台Cisco两层交换机2950,其配置过程:第一步,准备安装与调试所需的设备,主要包括Cisco2950交换机、RJ45直通线,RJ45转9针串口转换器、计算机
文件/etc/sysconfig/network-scripts/eth0用于存储网络配置信息,请根据图2-1填写下面的空缺信息,完成主机的配置。DEVICE=eth0HWADDR=(7)ONBOOT=yesBOOT
在Linux操作系统下,可通过命令(2)显示路由信息。若主机所在网络的网关IP地址为192.168.0.254,则可使用命令(3)adddefault(4)192.168.0.254添加网关为默认路由。备选答案:A.nets
根据网络拓扑和需求说明,完成(或解释)路由器R1的配置。R1#configureterminal;进入全局配置模式R1(config)#interraceethernet0;进入端口配嗣模式R1(config-i
随机试题
茶叶的灰分是指在规定的条件下,茶叶经()灼烧灰化后所得的残渣。
男性,56岁。10年前体检发现胆囊结石,直径3cm左右,偶有右上腹疼痛,放射至右肩胛部。近3个月来.疼痛发作频繁且加重,持续时间长,无肉眼黄疸。诊断应考虑为
黄芩含量测定的指标成分为
土地统计即是土地管理工作的重要组成部分,也是社会经济统计的重要组成部分,它是反映国情、国力和社会经济活动分布的重要途径和必要手段。()
质量管理体系中的第三方质量认证制度对供方、需方、社会和国家的利益具有( )等重要意义。
下列关于企业法人、法定代表人与项目经理部的法律关系,说法正确的有()。
汇票上可以记载《票据法》已规定事项以外的其他出票事项,但该记载事项不具有汇票上的效力。()
资料(一)绿天(集团)有限公司(以下简称绿天集团)是一家多元化企业集团,下设6大业务单元,包括电力、地产、医药、水泥、燃气、金融,分别按照各个业务单元进行管理。绿天集团拥有3家上市子公司,包括绿天置地、绿天创业、绿天电力。绿天置地有限公
技能是按照规则、程序、基于练习而完成智慧任务或身体协调动作的能力,下列与技能的三种类型不符的是【】
2013年全国农民工总量26894万人,比上年增加633万人,增长2.4%;外出农民工人均月收入2609元,比上年增加319元。1980年及以后出生的新生代农民工12528万人,占农民工总量的46.6%.占1980年及以后出生的农村从业劳动力的比重为65.
最新回复
(
0
)