首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题。 【说明】 n一皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。 拟采用以下思路解决n.皇后问题:第i个皇后放在第i行。从第一个皇后
阅读下列说明和C代码,回答问题。 【说明】 n一皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。 拟采用以下思路解决n.皇后问题:第i个皇后放在第i行。从第一个皇后
admin
2016-09-08
54
问题
阅读下列说明和C代码,回答问题。
【说明】
n一皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。
拟采用以下思路解决n.皇后问题:第i个皇后放在第i行。从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若超出最后一列,则重新确定上一个皇后的位置。重复该过程,直到找到所有的放置方案。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
pos:一维数组,pos
表示第i个皇后放置在第i行的具体位置
count:统计放置方案数
i,j,k:变量
N:皇后数
(2)C程序
#include <stdio.h>
#include <math.h>
#define N 4
/*判断第k个皇后目前放置位置是否与前面的皇后冲突*/
int isplace(int pos[], int k){
int i;
for(i=1; i<k; i++){
if(
(1)一|| fabs(i一k)==fabs(pos[iJ一poslk])){
return 0;
}
}
return 1;
}
int main(){
int i, j, count=1;
int pos[N+1];
//初始化位置
for(i=1; i<=N;i++){
pos
=0;
}
(2);
while(j >=1){
pos [j] =pos [j]+1;
/*尝试摆放第j个皇后*/
while(pos [j] <=N&&(3)){
pos [j]=pos [j]+1;
}
/*得到一个摆放方案*/
if(pos[j] <=N&&j==N){
printf("方案%d:",count++);
for(i=1;i<=N;i++){
printf("%d ", pos
);
}
printf("\n");
}
/*考虑下一个皇后*/
if(pos[jl <=N&&
(4)){
j =j +1;
} else{ //返回考虑上一个皇后
pos [j] =0f
(5);
}
}
return 1;
}
根据以上说明和C代码,填充C代码中的空(1)~(5)。
选项
答案
(1)pos[i]=pos[k] 或其等价形式 (2)j=1 (3)risplace(pos,j) 或其等价形式 (4)j<N 或其等价形式 (5)j=j一1 或其等价形式
解析
本题考查算法设计和C程序设计语言的相关知识。此类题目要求考生认真阅读题目,理解算法思想,并思考将算法思想转化为具体的程序设计语言的代码。
根据题干描述。空(1)所在的代码行判断皇后合法放置的约束条件,即不在同一行,这通过把第i个皇后放在第i行实现,条件“fabs(i一k)=fabs(pos
一pos[k])”判断的是当前摆放的皇后是否与之前摆放的皇后在同一对角线上。因此,空(1)判断的是当前摆放的皇后是否和之前摆放的皇后在同一列上,即应填入“pos
=pos[k]”。
根据算法思想和主函数上下文,空(2)处应该考虑第1个皇后,即初始化j为1,空(2)填写“j=1”。空(3)所在的行是判断放置第j个皇后的位置是否合适,“pos[j]<= N"表示在该行的合法列上,但还需要进一步判断是否与前面的皇后有冲突,根据满足条件后的语句,尝试放入下一列,因此空(3)处填入“risplace(pos,j)”。根据前面的注释,空(4)所在的行是考虑下一个皇后,其条件是,当前皇后找到了合适的位置,而且还存在下一个皇后,因此空(4)处应填入“j<N”。根据下面的注释,若当前皇后没有找到合适的位置,则应回溯,即再次考虑上一个皇后的位置,因此空(5)处填入“j=j一1”。
转载请注明原文地址:https://kaotiyun.com/show/cdDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
为了使DNS_Server1能正确解析本地Web站点的域名,需对DNS_Server1中的DNS服务进行配置。在图1所示的对话框中,新建的区域名称是(1);在图2所示的对话框中,添加的新建主机名称为(2),IP地址栏应填入(3)。在网络A的PCI中执
请在(1)~(4)空白处填写恰当的内容。DHCP的工作过程是:1)IP租用请求。DHCP客户机启动后,发出一个DHCPDISCOVER消息,其封包的源地址为(1),目标地址为(2)。2)IP租用提供。当DHCP服务器收到DHCPDI
阅读以下说明,将(n)的含义填入对应栏内。[说明]电子邮件是Internet中应用最广泛的服务,因此安装和配置一个高效与满足实际需求的电子邮件系统是每一个系统管理员的奋斗的目标之一,Linux的出现为构建低成本的、高效的电子邮件服务器提供了
如果ping127.0.0.1(本地循环地址),如果该地址无法Ping通,则说明了是什么原因?在DOS状态下输入tracertwww.ciu.net.cn并执行后,经过一段时间等待,系统会反馈出很多IP地址。出现在最上方(第1条记录)的IP地址是什么
VPN使用的隧道协议可以有那几类,分别有哪些协议?VPN路由器配置如下,请解释画线部分含义。Vpdn-group1(1)Accept-dialinprotocol12tpvirtual-template1terminate
以下是使用E1线路实现多个64Kbit/s专线连接。当链路为T1时,channel-group编号为0~23,Timeslot范围为1~24;当链路为E1时,channel-group编号为0~30,Timeslot范围为1~31.路由器
阅读以下有关网络接入方案的说明,回答问题1~3。【说明】某单位己完成了主干网络的建设任务,现在需要对其职工住宅区的用户接入主干网的技术方案作选型设计。职工住宅已有的通信条件是:(1)电话线(2)电视铜缆。在不重新布线的前提下,以下5种技术方
在RAS上存在着两个RJ45的端口,分别为“Console”与“AUX”,请问这两个端口的用途是什么?(控制在100个字以内)在第四步中,进入虚拟操作台后,在IOS环境下输入了如下的配置,请解释(1)~(4)处的标有下划线部分配置命令的含义(“◇”后为
在RAS上存在着两个RJ45的端口,分别为“Console”与“AUX”,请问这两个端口的用途是什么?(控制在100个字以内)在调用超级终端程序进行设备连接时,应该对设备的连接参数进行正确设置,参数主要包括串口数据传输率、数据位数、停止位数以及是否有奇
请指出图1-12中(1)空缺处传输的是模拟信号,还是数字信号?图1-12中(2)空缺处是什么设备?该设备在本宽带网络中完成哪些功能?
随机试题
地方性法规需要有地方特色,需要因地制宜地对法律、行政法规的实施作出具体规定。()
America—thegreat"meltingpot"—hasalwaysbeenarichblendofculturaltraditionsfromallovertheworld.ManyAmericanfamil
在沟通网络中,组织的集中化程度及主管人员的预测程度均很低的形态是()
女性,40岁,近1个月来发现外阴部色素减退,已行外阴活检。下列哪种病变是外阴癌前病变
下列各项中将导致房地产市场价格上升的原因是()。
正确处理公平和效率之间的关系就是要坚持公平的分配原则。()
()是我国唯一地跨长江、淮河、黄河、海河四大流域的省份。
大鼠蒲松龄万历间①,宫中有鼠,大与猫等,为害甚剧。遍求民间佳猫捕制之,辄被啖食。适异国来贡狮猫,毛白如雪。抱投鼠屋,阖其扉,潜窥之。猫蹲良久鼠逡巡自穴中出见猫怒奔之。猫避登
优势手的形成是在()
Hewenttothenewshoppingmall,and______(以八折的价钱买了一套西服).
最新回复
(
0
)