迈瑞的四道IQ笔试题

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

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

我做了一个程序,来测试结果:
cpp 代码
 
  1.  1. #include <iostream>    </iostream>
  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<<count><count<<endl;</count>
  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

你可能感兴趣的:(算法)