编程之美之中国象棋将帅问题
来源:互联网 发布:关系数据库语言 编辑:程序博客网 时间:2024/04/30 20:17
问题描述:
int main()
{
struct test{
unsigned char a:4;
unsigned char b:4;
} t;
for ( t.a = 1; t.a <= 3; ++t.a )
{
for ( t.b = 1; t.b <= 9; ++t.b )
{
if ( t.b%3 != t.a%3 )
{
//位于同一纵向线上的情况一样
printf("<A = %d,B = %d>", t.a,t.b );
printf("<A = %d,B = %d>", t.a + 3,t.b );
printf("<A = %d,B = %d>", t.a + 6,t.b );
printf("\n");
}
}
}
return 0;
}
如上图所示,将与帅被限制在3*3的格子里运动。我们假定“将”用A来表示,“帅”用B来表示。A、B可以横向与纵向移动一格,但是不能沿对角线方向移动。A与B不能处于同一纵向线上。如A在的位置,那么B就不能在,,的位置。程序代码只能用一个字节存储变量。
实现代码如下:
#include <stdio.h>
int main()
{
struct test{
unsigned char a:4;
unsigned char b:4;
} t;
for ( t.a = 1; t.a <= 3; ++t.a )
{
for ( t.b = 1; t.b <= 9; ++t.b )
{
if ( t.b%3 != t.a%3 )
{
//位于同一纵向线上的情况一样
printf("<A = %d,B = %d>", t.a,t.b );
printf("<A = %d,B = %d>", t.a + 3,t.b );
printf("<A = %d,B = %d>", t.a + 6,t.b );
printf("\n");
}
}
}
return 0;
}
0 0
- <<编程之美>>之中国象棋将帅问题
- 编程之美之中国象棋将帅问题
- 编程之美之中国象棋将帅问题
- 编程之美 - 中国象棋将帅问题
- 编程之美 - 读书笔记 - 中国象棋将帅问题
- 编程之美:中国象棋将帅问题
- 微软编程之美--中国象棋将帅问题
- 编程之美-中国象棋将帅问题
- 编程之美_002中国象棋将帅问题
- 编程之美-中国象棋将帅问题
- 编程之美---中国象棋将帅问题
- 编程之美二 : 中国象棋将帅问题
- 编程之美 -- 中国象棋将帅问题
- 编程之美 1.2 中国象棋将帅问题
- 编程之美1.2 中国象棋将帅问题
- 编程之美-中国象棋将帅问题
- 编程之美 1.2 中国象棋将帅问题
- 编程之美:中国象棋将帅问题
- ViewPager+Fragment实现滑动标签
- 《HTML5 从入门到精通--7.6.3 单元格垂直跨度——rowspan》
- 类加载器classLoader加载配置文件多种方法,框架原理--反射
- virtualbox下安装ubuntu11.10 server
- Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
- 编程之美之中国象棋将帅问题
- 很反感凡是叼杠时尚的风格
- IOS 画1px细线
- JAVA通过搜狗词库过滤指定词性
- poj 1390 Blocks(dp,黑书dp方块消除)
- 最短路径
- iOS面试考察点
- erlang中mnesia的动态加载
- putty连接BT5