编程之美里有个将帅问题蛮有意思的,该问题的具体描述是:(根据中国象棋的基本原则)在只有双的将帅棋盘上,找出所有双方可以落子的位置(将帅不能碰面),但只能使用一个变量。

解法一般也就是 循环然后判断去除重复位置。而对于只能用一个变量的限制一般通过把变量拆成2个来解决。

我有一个全新的思路,不做判断,不拆变量,直接用计算来解决问题。

附算法源程序:

int _tmain(int argc, _TCHAR* argv[]) { for( int i=0; i<54; ++i ) printf( "a: %d/tb: %d/r/n", int(i/6),((int(i/18)+1)*3+i%6)%9 ); return 0; }

当然,为了适应算法,我的坐标体系稍微有点变化:9 个格这么划分

0 3 6

1 4 7

2 5 8

代码的解释么,真男人,不解释,哈哈。

至于这个算法比原文的好还是差,那就是仁者见仁的事了,呵呵。

附:原文的一个算法代码

BYTE i=81; while(i--) { if(i / 9 % 3 == i % 9 % 3) continue; printf("A= %d, B= %d/n", i / 9 + 1, i % 9 +1 ); }

中国象棋将帅问题的另类解法相关推荐

  1. 中国象棋将帅问题的一种解法

    "中国象棋将帅问题"的一种解法 在<编程之美:微软技术面试心得>一书中,看到这样一道"中国象棋将帅问题": 下过中国象棋的朋友都知道,双方的&quo ...

  2. 中国象棋将帅问题java_编程之美读书笔记1.2——中国象棋将帅问题

    http://blog.csdn.net/pipisorry/article/details/36380669 问题:下过中国象棋的朋友都知道,双方的"将"和"帅&quo ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 问题描述: 在中国象棋规则中,将和帅规定只能在田字格中移动,且将和帅是不能碰面的,请求解出所有可能的符合规则的将帅位置. 限制 ...

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

    编程之美 1.2 中国象棋将帅问题 版权所有, 禁止转载, 如有需要, 请站内联系. 本文地址: http://blog.csdn.net/caroline_wendy/article/details ...

  5. 中国象棋将帅问题(一)

    题记--开始学习编程之美,第一次写博客记录自己的编程心得,希望自己不断进步,做一个踏实的codeman.通过博客能够记录每次的编程体会,将一些重要的知识点进行标注,便于日后查看复习.如果,有朋友能够从 ...

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

    废话不多说,上代码 代码 /************************************************************************编程之美1.2中国象棋将帅的 ...

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

    Author: Fox 晚上没有加班,打游戏打到9点过,后面就又看了一道<编程之美>的题目<中国象棋将帅问题>. 题目:下过中国象棋的朋友都知道,双方的"将" ...

  8. 编程之美——1.2 中国象棋将帅问题(转)

    下面是书中给出的第二个方法: #include<stdio.h> #define BYTE unsigned char int main(void) { BYTE i = 81; whil ...

  9. 【编程之美】中国象棋将帅问题

    问题描述 在中国象棋里将和帅是不能碰面的,如下图所示,当将位于d10时,帅就不能在d1,.d2.d3.请写一个程序,输出将.帅所有的合法位置.要求在代码中仅用一个变量. 如果只是输出将.帅的合法位置, ...

最新文章

  1. 阿里AI大牛聂再清重返清华,加入张亚勤AIR战队
  2. mongoDB 删除集合后,空间不释放
  3. 共享内存 Actor并发模型到底哪个快?
  4. [文摘20090203]手机基本知识
  5. 在IT的路上,我在成长
  6. el表达式 循环_EL表达式和JSTL标签库(百战程序员047天)
  7. Elasticsearch7.15.2 报java.lang.NoClassDefFoundError: org/elasticsearch/client/Cancellable的解决方案
  8. 揪出占用磁盘空间的罪魁祸首-企业生产实战
  9. ReactJs 高级篇一 Context 使用
  10. No such file or dirctionary:/ufeff.....关于ufeff错误的解决办法
  11. 在Windows上删除所有的Oracle安装 和电脑名改变后的设置...
  12. PowerDesigner(CDM—PDM—SQL脚本的转换流程) 随笔
  13. 根据ip做客户端gps定位
  14. java 偏向锁的撤销_源码解析-偏向锁撤销流程解读
  15. 【MATLAB】用MATLAB编写阶乘函数,并调用该函数来生成一个1!,...,10!的阶乘表。
  16. 修改antd下拉框样式
  17. 全球四大会计师事务所
  18. 中科院信工所雏鹰团队在SemEval上大显神威
  19. android 输入法更换_安卓手机怎么更换输入法-安卓手机切换输入法的方法 - 河东软件园...
  20. 【ACM】心路历程2019.9.29

热门文章

  1. 【思路整理】凑数问题
  2. 如何评测软件系统的安全性
  3. 扩展卡尔曼滤波的理解与对加入高斯噪声的正弦信号进行滤波实例
  4. 以太坊区块链浏览器(二)开发
  5. 求 n+nn+nnn+nnnn+........的和(java写法)
  6. 怎么用c语言编辑酷q,GitHub - traceless0929/Native.Cqp.Csharp: 完全由 C# 语言编写的 酷Q 插件SDK...
  7. GreenDao封装使用
  8. Mac下adb调试华为C8815问题
  9. 在Outlook 2007日历中显示两个时区
  10. 微信公众号用户授权登录逻辑