中国象棋将帅问题

来源:互联网 发布:php截取字符串第一组 编辑:程序博客网 时间:2021/05/13 05:03

这里的题目就抽取《编程之美》的,原体描述如下:





























我给每个位置定位如下:















注:(1,2)合法,(1,4)不合法,及将与帅不能照面

我的简单解决方法如下:满足只使用一个变量的:

#include<iostream>using std::cout;using std::endl;int main(){        int grid = 1;        for(; grid<=9; grid++){                if(grid%3!=1%3)                         cout<<"["<<grid<<","<<1<<"] ";                 if(grid%3!=2%3)                         cout<<"["<<grid<<","<<2<<"] ";                 if(grid%3!=3%3)                         cout<<"["<<grid<<","<<3<<"] ";                 if(grid%3!=4%3)                         cout<<"["<<grid<<","<<4<<"] ";                 if(grid%3!=5%3)                         cout<<"["<<grid<<","<<5<<"] ";                 if(grid%3!=6%3)                         cout<<"["<<grid<<","<<6<<"] ";                 if(grid%3!=7%3)                         cout<<"["<<grid<<","<<7<<"] ";                 if(grid%3!=8%3)                         cout<<"["<<grid<<","<<8<<"] ";                 if(grid%3!=9%3)                         cout<<"["<<grid<<","<<9<<"] ";                 cout<<endl;        }        return 0;}

运行结果如下:








不过,这样就学不了用一个字节代表8位的方式来存储数据的方法了。本来也是想着位运算的,想着想着就变成了普通的一个int来表示了。

原创粉丝点击