首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题。 【说明】 n一皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。 拟采用以下思路解决n.皇后问题:第i个皇后放在第i行。从第一个皇后
阅读下列说明和C代码,回答问题。 【说明】 n一皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。 拟采用以下思路解决n.皇后问题:第i个皇后放在第i行。从第一个皇后
admin
2016-09-08
47
问题
阅读下列说明和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)。在客户端除了可以用p
下图为RouterB上的路由表信息,写出查询路由表的命令:(1)。该路由器上运行的路由协议为(2)。行政办公楼部门A所属网络地址是(3),部门B所属网络地址是(4)。在主机D上使用命令TracertDNSServer,显示结
解释图10-2中的PVC和SVC。以下是LANE工作过程,其顺序已乱,请排序。①LEC接着便向其他LEC广播这个响应。②在地址表中含有被称为MAC地址的LEC向LEC作出响应。③LES发送多点组播至网络上的其他LEC。④
阅读以下说明,回答问题1、问题2、问题3和问题4,将解答填入对应栏内。[说明]ATM(AsynchronousTransferMode)顾名思义就是异步传输模式,是国际电信联盟ITU-T制定的标准。实际上在20世纪80年代中期,人们就已经
如果ping127.0.0.1(本地循环地址),如果该地址无法Ping通,则说明了是什么原因?什么命令是一个监控TCP/IP网络的实用的工具,它可以显示实际的网络连接以及每一个网络接口设备的状态信息?什么命令是把网卡物理地址与IP静态地址捆绑在一起?
如果ping127.0.0.1(本地循环地址),如果该地址无法Ping通,则说明了是什么原因?在DOS状态下输入tracertwww.ciu.net.cn并执行后,经过一段时间等待,系统会反馈出很多IP地址。出现在最上方(第1条记录)的IP地址是什么
阅读以下说明,回答问题。【说明】网络地址转换(NAT)的主要目的是解决IP地址短缺问题以及实现TCP负载均衡等。在如图5-5所示的设计方案中,与Internet连接的路由器采用网络地址转换。【问题】请根据路由器的NAT表和
阅读以下说明、Java源程序和运行测试部分1.HTTP协议。●HTTP请求消息示例:GET/index,htmlHTTP/1.1Accept:image/gif,image/jpeg,*/Acc
在图4-8所示的无线接待室中WLAN采用的体系结构如图4-9所示,请将(1)~(3)空缺处填写完整请将以下(11)~(14)空缺处的内容填写完整,并帮助郭工程师解释产生以下网络故障的原因。该网络建成后一直使用正常,但最近发现无线覆盖区域A、B
随机试题
Americansareproudoftheirvarietyandindividuality(个性),yettheyloveandrespectfewthingsmorethanauniform,whetheri
患者,女,46岁。因“消化性溃疡出血”行胃大部切除术,术后5天,患者出现发热,体温最高至39.2℃,并出现顽固性呃逆,腹胀明显、腹痛、纳差、乏力。心肺听诊:未及明显异常,右上腹深压痛、叩痛,无明显反跳痛、肌紧张,上腹部未及包块,切口愈合好。立位腹X线平片:
关于佐剂,错误的是
关于分析X线影像应遵循原则的叙述,错误的是
A.甲氰咪胍B.阿托品C.前列腺素E2D.吗丁啉E.奥美拉唑促进胃排空,防止胆汁返流
小儿泌尿系梗阻常见原因是成人泌尿系梗阻常见原因
企业财务报表分析的主要内容包括()。
国际组织的“民主集中制”原则,是在()文献中首次规定的。
下列哪一对国家颜色必须不同?假如X和Z颜色相同,那么下列哪一项必然正确?
Pollution:ALifeandDeathIssueOneofthemainthemesofPlanetunderPressureisthewaymanyoftheEarth’senvironmenta
最新回复
(
0
)