问题描述: 下过中国象棋的朋友都知道。双方的“将”和“帅”相隔遥远,并且不能照面。在象棋残局中,许多高手座利用这一规则走出精妙的杀招。假设棋盘上只有“将”和“帅”二子 (为了下面叙述方便,我们约定用A 表示“将”,B表示“帅”)。 A、B二子被限制在己方3x3 的格子里运动。每一步,A、B分别可以横 ...
分类:
其他好文 时间:
2018-01-22 00:03:27
阅读次数:
196
1.2、中国象棋将帅问题 要求:只用一个字节存储变量,输出将帅不照面的所有可能位置。 思路简单,就是穷举让将和帅不在同一列即可,用char高四字节和低四字节分别存储将和帅的位置,位置编号从1到9。代码如下: 1 unsigned char ch; 2 for(ch=1;ch< 0xff;ch++) ...
分类:
其他好文 时间:
2017-04-27 19:35:13
阅读次数:
117
中国象棋将帅问题flyfish 2015-8-11问题引自 《编程之美》中国象棋将帅问题
将帅每一着只许走一步,前进、后退、横走都可以,但不能走出“九宫”,被限制在3×3的格子里运动。将和帅不准在同一直线上直接对面。
请写出一个程序,输出将帅所有合法的位置,要求在代码中只能使用一个变量.
约定用a表示“将”,b表示“帅”一个解法是关于位操作 跳过原文提供解法一struct {
unsi...
分类:
其他好文 时间:
2015-08-11 18:52:43
阅读次数:
100
中国象棋将帅问题 中国象棋里面双方的“将”和“帅”各自呆在自己的九宫格里,一步只能横移或纵移一格,而且双方不能见面(既不能处在同一条纵线上)。在残局时有的人会用这一规则走出绝妙杀招。假设一方的“将”为A,另一方的“帅”为B,现在求双方所能出现的所有合法位置,所需变量只能用一个字节来保存。 我们用.....
分类:
其他好文 时间:
2015-06-25 13:55:40
阅读次数:
112
#includeusing namespace std;//设置一些计算的宏typedef char bytes;#define BYTES_LENGTH 255//一个字节的数据大小#define BYTES_HALF_LENGTH 4//半个字节的位数//#define RHALF (BYTES...
分类:
其他好文 时间:
2015-03-12 16:44:57
阅读次数:
120
问题描述
中国象棋里面双方的“将”和“帅”各自呆在自己的九宫格里,一步只能横移或纵移一格,而且双方不能见面(既不能处在同一条纵线上)。在残局时有的人会用这一规则走出绝妙杀招。假设一方的“将”为A,另一方的“帅”为B,现在求双方所能出现的所有合法位置,所需变量只能用一个字节来保存。
我的解法
#include
int main(void)
{
unsigned char chPos...
分类:
其他好文 时间:
2014-11-30 12:36:04
阅读次数:
133
后面两种写法很巧妙。一种利用位域,一种利用取余。这里如果不用unsigned char来做位域的话,大小就为4. unsigned char才符合题目要求。 1 void chess1() { 2 struct { 3 unsigned char a:4; 4 ...
分类:
其他好文 时间:
2014-10-01 18:46:11
阅读次数:
168
(根据中国象棋的基本原则)在只有双的将帅棋盘上,找出所有双方可以落子的位置(将帅不能碰面),但只能使用一个变量。
直觉上我们想到,只要遍历将帅所有可能的位置,去除将帅冲突的位置即可。可见,剩下的问题就在于如何使用一个变量来做二重循环的遍历。书中解法一给出的方法是将一个Byte变量拆成两个用,前一半代表“帅”可以走的位置,后一个变量代表“将”可以走的位置(事先已经将“将”和“帅”可以走的3*3的位...
分类:
其他好文 时间:
2014-09-28 00:45:30
阅读次数:
222
题目要求输出“将”(A),“帅”(B)的所有合法位置,并且只能使用一个字节存储变量;解法一: 1 #include 2 using namespace std; 3 4 int main() 5 { 6 int i=81; 7 while(i--) 8 { 9 ...
分类:
其他好文 时间:
2014-08-28 14:47:39
阅读次数:
152
后来一版作者又将最后一句改为:”要求在代码中只能使用一个字节存储变量“。我的解法:package android.zlb.java;/** * * @author zhanglibin * */public class TestXiangqi { public static void mai...
分类:
其他好文 时间:
2014-07-25 02:42:24
阅读次数:
209