(1 )8*6方格,从左下角走到右上角,只能向右或向上走,问有多少种走法?
(2 )一根金条断三次分十五天支付,如何做到?
(3 )一根不均匀绳子烧完要一小时,有若干条绳子,烧绳计时一小时十五分?
(4 )扑克牌问题,比鬼谷问题简单太多,题目条件:不知道;知道不知道;--〉知道;知道,推牌是哪一张。
后三题都是常规题了,可能(1)显得陌生一点
我做了一个程序,来测试结果:
其实这是一个填空题,解法肯定可以用数学方法来解,揭露本质吧:这条路径必须要十四步,8上6右,故是排列组合问题,答案:C6/14
(2 )一根金条断三次分十五天支付,如何做到?
(3 )一根不均匀绳子烧完要一小时,有若干条绳子,烧绳计时一小时十五分?
(4 )扑克牌问题,比鬼谷问题简单太多,题目条件:不知道;知道不知道;--〉知道;知道,推牌是哪一张。
后三题都是常规题了,可能(1)显得陌生一点
我做了一个程序,来测试结果:
cpp 代码
- 1. #include <iostream> </iostream>
- 2. using namespace std;
- 3. void visit(int& count,int row,int col,const int& rowSize,const int& colSize);
- 4. int main(){
- 5. int count=1;//初始为1,因为从左下角出发进入visit时已经丢失统计了一条路径
- 6. const int rowsize=8;
- 7. const int colsize=6;
- 8. visit(count,rowsize,0,rowsize,colsize);
- 9. cout<<count><count<<endl;</count>
- 10. getchar();
- 11.
- 12. }
- 13. /*进入一个点情况,如果非第一行或最后一列,路径变化情况就会加一,递归调用*/
- 14. void visit(int& count,int row,int col,const int& rowSize,const int& colSize){
- 15. if(row!=0&&col!=colSize)
- 16. ++count;
- 17. else return;
- 18. visit(count,row-1,col,rowSize,colSize);
- 19. visit(count,row,col+1,rowSize,colSize);
- 20. }
其实这是一个填空题,解法肯定可以用数学方法来解,揭露本质吧:这条路径必须要十四步,8上6右,故是排列组合问题,答案:C6/14