李白喝酒——蓝桥杯

                              李白喝酒问题

   “李白街上走,提壶去买酒,遇店加一倍,见花喝一斗”,途中,遇见5次店,见了10此花,壶中原有2斗酒,最后刚好喝完酒,要求最后遇见的是花,求可能的情况有多少种?

   分析:题目要求最后是遇见花也就是说最后是喝酒(最好刚好把酒完),出去这种确定的情况,最后剩下的情况是:还有一斗酒,前面遇到了5次店和九次花(打了5次酒,喝了九次酒)。

   然后每次情况只有两种分别是遇见花喝酒和遇到店打酒。

   //dfs(num-1,mum,s*2)+dfs(num,mum-1,s-1);

   遇到店的时候打酒(s*2),然后酒的斗数会翻倍;遇到花时喝酒,然后酒的斗数减一(s-1);

   然后设置递归的出口:

   当酒喝完还遇见花时,则return 0;以为酒不能是负的;

   当5个店已经都遇见过时,则return 0;

   当9个花已经都遇见过时,则return 0;

   当花刚好遇见完,店刚好遇见完,酒还有一斗时:return 1;

   当中间过程,酒喝完了,但是遇见店了,又因为此时s=0,遇到店的时候打酒(s*2),所以要把s设置成0.5;

  /***********只是个人理解,欢迎交流*************/

  

 1 #include<stdio.h> 2 int dfs(int num,int mum,int s){ 3     if(s<0 || num<0 || mum<0) 4     return 0; 5     if(num<0 || mum<0) 6     return 0; 7     if(num==0 && mum==0&& s==1) 8     return 1; 9     if(s==0 && num>0 && mum>=0)10     s=0.5;11     return dfs(num-1,mum,s*2)+dfs(num,mum-1,s-1);12 }13 int main()14 {15     printf("%d",dfs(5,9,2));16     return 0;17  } 

    

代替你主持夕阳的葬礼。

李白喝酒——蓝桥杯

相关文章:

  • 【算法】直接插入排序C语言实现
  • 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
  • Android 动画animation 深入分析
  • Mybatis极其(最)简(好)单(用)的一个分页插件
  • 你感兴趣的文章:

    标签云:

    亚洲高清电影在线, 免费高清电影, 八戒影院夜间, 八戒电影最新大片, 出轨在线电影, 午夜电影院, 在线影院a1166, 在线电影院, 在线观看美剧下载, 日本爱情电影, 日韩高清电影在线, 电影天堂网, 直播盒子app, 聚合直播, 高清美剧, 高清美剧在线观看 EhViewer-E站, E站, E站绿色版, qqmulu.com, qq目录网, qq网站目录,