首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。 【说明】 n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。 算法的基本思想如下: 将第i个皇
阅读下列说明和C代码,回答问题,将解答写在答题纸的对应栏内。 【说明】 n皇后问题描述为:在一个n×n的棋盘上摆放n个皇后,要求任意两个皇后不能冲突,即任意两个皇后不在同一行、同一列或者同一斜线上。 算法的基本思想如下: 将第i个皇
admin
2021-03-13
33
问题
阅读下列说明和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://www.kaotiyun.com/show/zoxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
设计布线时,需要考虑哪些主要因素?结构化布线应遵循的国际标准有哪些?
目前最流行的无线接入技术类型有哪几种?当企业内的员工使用无线局域网络产品时,不管他们在办公室的任何一个角落,有无线局域网络产品,就能随意的发电子邮件、分享档案及上网络浏览。上图当企业内的员工发电子邮件时必须通过路由器IP网关,请简述路由器IP网关的作用
A、B、C、D4台主机之间哪些可以直接通信?哪些需要通过设置网关(或路由器)才能通信?请画出网络连接示意图,并注明各个主机的子网地址和主机地址。不改变A主机的物理位置,将其IP地址改为192.155.12.168,试问它的直接广播地址和本地广播地址各是
设置ServerA和ServerB之间通信的筛选器属性界面如图4-2所示,在ServerA的IPSec安全策略配置过程中,当源地址和目标地址均设置为“一个特定的IP子网”时,源子网IP地址应设为(7),目标子网IP地址应设为(8)。图4-3
假设在服务器和客户机之间均采用TCP/IP协议通信。请估算出在峰值时间点,该局域网上传输的数据的最小流量是多少?(请简要写出计算过程)假设该企业每名员工配备有一台计算机,每个部门有独立子网:员工所用PC机的IP地址由其所在部门指派,由企业信息部负责
阅读以下说明,回答问题1至问题5,将解答填入对应的解答栏内。[说明]某网络拓扑结构如图3-1所示,网络1和网络2的主机均由DHCP_Server分配IP地址。FTPServer的操作系统为WindowsServer2003,Web_S
阅读以下说明,回答以下问题,将解答填入答题纸对应的解答栏内。【说明】某单位网络拓扑结构如下图所示,该单位.Rotlter以太网接口E0接内部交换机S1,S0接口连接到电信ISP的路由器;交换机S1连接内部的Web服务器、DHCP服务器、
阅读以下说明,回答问题,将解答填入答题纸对应的解答栏内。【说明】图2-1为某公司数据中心拓扑图,两台存储设备用于存储关系型数据库的结构化数据和文档、音视频等非结构化文档,规划采用的RAID组合方式如图2-2、图2-3所示。图2-2所示的RAID方
以太网中如果发生介质访问冲突,按照二进制指数后退算法决定下一次重发的时间,使用二进制指数后退算法的理由是(56)。
Packet-switchingwirelessnetworksarepreferable(66)whentransmissionsare(67)bemuseofthewaychargesare(68)perpacket.Circ
随机试题
设inta,b,c;,则执行a=(b=3,c=4,a=5,b=8);之后变量a的值是______。
关于细胞内玻璃样变性,错误的描述是
A.Brown-Sequard综合征B.Wallenberg综合征C.前核间性眼肌麻痹D.Foville综合征E.闭锁综合征
国际航空运输中最主要的单据是()。
根据以下资料,回答106—110题某公司对新年联欢会的节目进行初选,组织三个部门的员工对六个节目进行投票(喜欢哪个节目就投那个节目的票)。其中甲为古筝弹奏表演,乙为健美操表演,丙为京剧表演,丁为小品表演,戊为小合唱表演,己为街舞表演。小合唱
每年中秋节前夕各商家都会展开“月饼大战”。有关专家指出,月饼大战不仅不利于大众消费者的经济利益,甚至成了中秋佳节的“甜蜜负担”。月饼市场要想回归平实,必须从工艺和配料方面进行改良。否则,就算包装和赠品再华丽,也不能满足正当的消费需求。据此题干,不能推出以下
下列叙述中正确的是()。
下列叙述中,错误的是
Readthefollowingparagraphsinwhichfivepeopletalkaboutbeauty.Forquestions61to65.matchthenameofeachspeaker(61
A、 B、 C、 B
最新回复
(
0
)