分享

迈瑞的四道IQ笔试题

 yiherainbow 2007-09-27
(1 )8*6方格,从左下角走到右上角,只能向右或向上走,问有多少种走法?
(2 )一根金条断三次分十五天支付,如何做到?
(3 )一根不均匀绳子烧完要一小时,有若干条绳子,烧绳计时一小时十五分?
(4 )扑克牌问题,比鬼谷问题简单太多,题目条件:不知道;知道不知道;--〉知道;知道,推牌是哪一张。

后三题都是常规题了,可能(1)显得陌生一点

我做了一个程序,来测试结果:
cpp 代码
 
  1.  1. #include     
  2.  2. using namespace std;    
  3.  3. void visit(int& count,int row,int col,const int& rowSize,const int& colSize);    
  4.  4. int main(){    
  5.  5.     int count=1;//初始为1,因为从左下角出发进入visit时已经丢失统计了一条路径    
  6.  6.     const int rowsize=8;    
  7.  7.     const int colsize=6;    
  8.  8.     visit(count,rowsize,0,rowsize,colsize);    
  9.  9.     cout<<
  10. 10.     getchar();    
  11. 11.         
  12. 12. }   
  13. 13. /*进入一个点情况,如果非第一行或最后一列,路径变化情况就会加一,递归调用*/  
  14. 14. void visit(int& count,int row,int col,const int& rowSize,const int& colSize){    
  15. 15.      if(row!=0&&col!=colSize)    
  16. 16.        ++count;    
  17. 17.      else return;    
  18. 18.      visit(count,row-1,col,rowSize,colSize);       
  19. 19.      visit(count,row,col+1,rowSize,colSize);            
  20. 20. }    
其实这是一个填空题,解法肯定可以用数学方法来解,揭露本质吧:这条路径必须要十四步,8上6右,故是排列组合问题,答案:C6/14
 
 
做做我出的题吧。
8*8的格,也是这么走不过有一条,不能越过对角线。(左下到右上的)。
呵呵。这个绝对有难度。反正我当时做了1个小时。扩展到n*n,又用了2-3个小时。

可能比较碰巧,在我的实现上只增加了两行代码,就解决了“不能越过对角线”问题

 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多