将帅专题

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

A表示“将”,B表示“帅”。用1~9表示A、B的坐标。 请写出一个程序,输出A、B所有合法位置。要求在代码中只能使用一个字节存储变量。 解法一: 用一个unsigned char类型变量存储A、B的位置,前4bit表示A的位置,后4bit表示B的位置。 #include <stdio.h>#define HALF_BITS_LENGTH 4#define FULLMASK

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

题目大意: 设A表示“将”,B表示“帅”,AB均只能在各自的九宫格内移动,但是他们不能遥相对望,输出所有A、B的合法位置。要求只能使用一个变量。 分析:设九宫格如下: 1 2 3 4 5 6 7 8 9 假设我们已知了A位置i和B位置j,那么我们判断他们合法只需要判断i%3和j%3不等即可,那么我们的工作也就是怎么样只用一个变量将A、B位置都保存起来 1、可以用位的思想,用一个数中不

将帅之争

public class ChinaChess {     /**      * 将帅之争~~~~~~~~      * @param args      */     public static void main(String[] args) {             //Byte  byte11[20];         byte i = 81;         while( i-- >