【算法习作】中国象棋将帅问题

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

 

在《编程之美》上的一道题,书上最后一种用结构体的方法我直接醉了,这个确实有点文字游戏的意思,不过其实面试中这反倒考验了被面试者的沟通和理解能力,说白了谁让你不问呢?你不问怎么知道就不能用呢?不要给自己下套。

我给出一个没什么新意,只是对单变量表示的一种新的方法:原理很简单,用一个double,整数位表示A,小数位表示B.,利用了编译器类型转换的特点(环境:g++ 4.4.1)

  1: #include  
  2: 
  3: using namespace std; 
  4: 
  5: #define GETA(i) (int)(i)
  6: #define GETB(i) (int)((i-GETA(i))*10) 
  7: 
  8: int main(void)
  9: {    
 10:     for(double j = 1.1;j<10.0;j+=0.1)
 11:     {        
 12:         if(GETB(j)%3!=GETA(j)%3)
 13:             cout << "A=" << GETA(j) << "," << "B="  <<GETB(j)<<endl;
 14:     } 
 15: 
 16:     return 0;
 17: }
 18: 
 19: 

还有一个更加有意思的讨论在http://blog.csdn.net/silenceburn/archive/2011/01/13/6133222.aspx 

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

posted @ 2012-12-21 15:56  gnuhpc  阅读(525)  评论(0编辑  收藏  举报