• 蓝桥杯-2014本科B-李白打酒


    李白打酒

       这道题跟去年还是前年的一个“奇怪的比赛”几乎一摸一样,详情:http://www.cnblogs.com/youdiankun/p/3594967.html

       话说大诗人李白,一生好饮。幸好他从不开车。

        一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:

        无事街上走,提壶去打酒。
        逢店加一倍,遇花喝一斗。

        这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

        请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案  的个数(包含题目给出的)。

        注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。

     1 #include<cstdio>
     2 #include<string.h>
     3 
     4 char a[20];
     5 int count;
     6 
     7 int wine(char *a)
     8 {
     9     int i,s=2;
    10     for(i=0;i<14;i++)
    11     {
    12         if(a[i]==1)
    13             s*=2;
    14         else
    15             s-=1;
    16     }
    17     if(s==1)//当s=1时,是前14次。最后一次遇花,s-1=0,正好把酒喝光了
    18         return 1;
    19     else
    20         return 0;
    21 }
    22 
    23 void show(char *a)
    24 {
    25     int i;
    26     for(i=0;i<15;i++)
    27     {
    28         if(a[i]==1)
    29             printf("a");
    30         else
    31             printf("b");
    32     }
    33     printf("
    ");
    34     count++;
    35 }
    36 
    37 void sovle(char *a,int n,int shop,int flower)
    38 {
    39     if(n==14)//本来应是n==15(即a[i]从0~14,一共15次,遇店5次,遇花10次),可题目要求最后一次遇到的是花,
    40     {                     //所以只看前14次(即0~13,n==14时就返回了)
    41         if(shop==5 && flower==9) //这样就遇花9次(默认最后一次遇花,即a[14]=0)
    42         {
    43             if(wine(a))
    44             {
    45                 show(a);
    46             }
    47         }
    48         return;
    49     }
    50     a[n]=1;
    51     sovle(a,n+1,shop+1,flower);//a[n]=1时遇店
    52     a[n]=0;
    53     sovle(a,n+1,shop,flower+1);//a[n]=0时遇花
    54 }
    55 
    56 int main()
    57 {
    58     memset(a,0,sizeof(a));
    59     sovle(a,0,0,0);
    60     printf("%d
    ",count);
    61     return 0;
    62 }
  • 相关阅读:
    普通父类和抽象父类
    properties文件的读取和写入
    HTTPS接口获取数据报错的问题
    SpringMVC中bean之间的相互应用(循环引用)
    JAVA代码进行排序以及模糊查询
    从TXT读取文本和将数据写入TXT文本的两种方式
    EXCEL最简洁导出(不带样式设置)
    5种线程池的创建方法和作用
    html5是什么
    J2EE,JSP,Java的区别
  • 原文地址:https://www.cnblogs.com/youdiankun/p/3621784.html
Copyright © 2020-2023  润新知