编程之美之中国象棋将帅问题

问题描述
编程之美之中国象棋将帅问题
如上图所示,将与帅被限制在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值