- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
写书评,赢取《编程之美——微软技术面试心得》/BCZM.asp
中国象棋将帅问题
1.2★★★
下过中国象棋的朋友都知道,双方的“将”和“帅”相隔遥远,并且它们不能照面。在象棋
残局中,许多高手能利用这一规则走出精妙的杀招。假设棋盘上只有“将”和“帅”二子(如图
1-3 所示)(为了下面叙述方便,我们约定用A 表示“将”,B 表示“帅”):
图1-3
A 、B 二子被限制在己方3×3 的格子里运动。例如,在如上的表格里,A 被正方形{d10,f 10,
d ,f }包围,而B 被正方形{d ,f , d ,f }包围。每一步,A 、B 分别可以横向或纵向移动一格,
8 8 3 3 1 1
但不能沿对角线移动。另外,A 不能面对B ,也就是说,A 和B 不能处于同一纵向直线上(比
如A 在d 的位置,那么B 就不能在d 、d 以及d )。
10 1 2 3
请写出一个程序,输出A 、B 所有合法位置。要求在代码中只能使用一个变量。
写书评,赢取《编程之美——微软技术面试心得》/BCZM.asp
分析与解法
问题的本身并不复杂,只要把所有A 、B 互相排斥的条件列举出来就可以完成本题的要
求。由于本题要求只能使用一个变量,所以必须首先想清楚在写代码的时候,有哪些信息需
要存储,并且尽量高效率地存储信息。稍微思考一下,可以知道这个程序的大体框架是:
遍历A的位置
遍历B的位置
判断A、B的位置组合是否满足要求。
如果满足,则输出。
因此,需要存储的是A 、B 的位置信息,并且每次循环都要更新。为了能够进行判断,
首先需要创建一个逻辑的坐标系统,以便检测A 何时会面对 B 。这里我们想到的方法是用
1~9 的数字,按照行优先的顺序来表示每个格点的位置(如图1-4 所示)。这样,只需要用
模余运算就可以得到当前的列号,从而判断A 、B 是否互斥。
1 2 3
4 5 6
7 8 9
图1-4 用1~9 的数字表示A 、B 的坐标
第二,题目要求只用一个变量,但是我们却要存储A 和B 两个子的位置信息,该怎么
办呢?
可以先把已知变量类型列举一下,然后做些分析。
对于bool 类型,估计没有办法做任何扩展了,因为它只能表示true 和false 两个值;而
byte 或者int 类型,它们能够表达的信息则更多。事实上,对本题来说,每个子都只需要9
个数字就可以表达它的全部位置。
一个8 位的byte 类型能够表达28=256 个值,所以用它来表示A 、B 的位置信息绰绰有余,
因此可以把这个字节的变量(设为b )分成两部分。用前面的4 bit 表示A 的位置,用后面的
4 bit 表示B 的位置,那么4 个bit 可以表示16 个数,这已经足够了。
问题在于:如何使用bit 级的运算将数据从这一byte 变量的左边和右边分别存入和读出。
下面是做法:
将byte b )的右边4 bit (0101 )设为n (0011 ):
首先清除b 右边的bits ,同时保持左边的bits:
写书评,赢取《编程之美——微软技术面试心得》/BCZM.asp
(LMASK )
(b )
然后将上一步得到的结果与n 做或运算
(LMASK b )
^(n )
您可能关注的文档
最近下载
- 办公耗材类保证服务的措施.docx VIP
- 网招团队日常管理.pptx
- 阿兹海默症护理.pptx VIP
- 罐区设备设施风险分级管控清单.pdf VIP
- DB32T 4582-2023 宗教活动场所安全管理规范 .pdf VIP
- 专题03 2025年西城区高三一模作文“用功与有功” “如你所愿”导写(原题呈现 审题立意 素材积累 高分范文 类题迁移).docx VIP
- BATCH RELEASE CERTIFICATE(外贸出口BRC两个模板).doc
- (投标书范本)政府采购投标书.pdf VIP
- 专题02 2025年东城区高三一模作文“适合的与热爱的” “先声”导写(原题呈现 审题立意 素材积累 高分范文 类题迁移).docx VIP
- 沪教版九上化学 2.1 性质活泼的氧气第2课时 氧气的实验室制法与性质实验 课件(共17张PPT)(含音频+视频).ppt VIP
文档评论(0)