李白打酒*C语言简易版(递归)

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

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

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

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

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

- 题目分析:题目中有十次花,五次店,因为最后一次之后酒为0,故最后一次应该遇到花。运用递归的思想,每次都具备两种可能性,遇花或者遇店。故递归代码如下


#include <stdio.h>
int path[100];
int ans;
void libai(int step,int flowers,int wine,int store)
{if(step==15){path[step]=1;flowers++;wine--;//最后一次肯定遇花if(wine==0&&flowers==10&&store==5){for(int i=1;i<=step;i++)printf("%c",(path[i]==1)?'b':'a');printf("\n");ans++;}return;//返回上一级}//遇到花if(store<=5&&flowers<9&&wine>=1)//因为最后一次要遇到花所以要确保之前遇花不能超过9次{path[step]=1;libai(step+1,flowers+1,wine-1,store);}//遇到店if(store<5&&flowers<=9){path[step]=0;libai(step+1,flowers,wine*2,store+1);}
}
int main()
{ans=0;libai(1,0,2,0);printf("%d",ans);return 0;
}

本人为C语言中初学者中的初学者,若有不足,请大神指点。
简单代码,不喜勿喷。

李白打酒*C语言简易版(递归)相关推荐

  1. 李白打酒c语言编程,搞定了“李白打酒”,还原问题都迎刃而解

    文|刷刷 图|自制&火花课件 李白街上走,提壶去打酒:遇店加一倍,见花喝一斗,三遇店和花,喝光壶中酒.试问酒壶中,原有多少酒? "李白打酒"是我国民间自古以来广为流传的一道 ...

  2. 李白打酒c语言,关于“李白打酒”的一道数学题

    :关于"李白打酒"的一道数学题 昨日,同事谈起了她在一个教学设计中的奥数题:李白街上走,提壶去打酒.遇店加一倍,遇花喝一斗.三遇店和花,喝干壶中酒.试问酒壶中,原有多少酒?诗题中的 ...

  3. 李白打酒c语言编程,c/c++开发分享蓝桥杯-李白喝酒

    更多精彩文章请关注 问题 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒两斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共遇 ...

  4. C语言——简易版通讯录完整代码

    目录 一.Contact.h 二.Contact.c 三.test.c 一.Contact.h #pragma once #include <stdio.h> #include <s ...

  5. 《C#零基础入门之百识百例》(三十七)方法递归 -- 李白打酒

    C#零基础入门 函数 -- 方法递归 前言 一,方法递归 1.1 释义说明 1.2 程序示例 二,实例练习 -- 李白打酒 2.1 题目描述 2.2 问题分析 2.3 参考代码 前言 本文属于C#零基 ...

  6. 用Java语言,写一个植物大战僵尸简易版!

    前言 有谁没玩过植物大战僵尸吗? 小灰的一位读者,用Java语言开发了自己的植物大战僵尸游戏.虽然系统相对简单,但是麻雀虽小五脏俱全,对游戏开发感兴趣的小伙伴可以学习一下哦~~ 游戏设计 植物大战僵尸 ...

  7. 用 Java 语言,写一个植物大战僵尸简易版!

    作者 | 林Lychee 来源 | 程序员小灰 前言 有谁没玩过植物大战僵尸吗? 小灰的一位读者,用Java语言开发了自己的植物大战僵尸游戏.虽然系统相对简单,但是麻雀虽小五脏俱全,对游戏开发感兴趣的 ...

  8. 蓝桥杯 2014本科C++ B组 李白打酒 三种实现方法 枚举/递归

    标题:李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共遇到店5次, ...

  9. busybox的实现原理分析(C语言实现简易版的busybox)

    1.linux中实现命令的两种方式 1.1.命令都是单独的可执行程序 aston:~$ ls -l /bin/ls -rwxr-xr-x 1 root root 138208 2鏈 8 2022 /b ...

  10. C语言扫雷游戏(简易版)

    前言 经过学习数组.函数.循环语句.选择语句等C语言的一些基础知识后,我想借助编写扫雷小游戏来对所学知识进行一个巩固.游戏只会实现一些基本的功能,展开.标记雷.取消雷等不实现(还不会). 1.游戏编写 ...

最新文章

  1. IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置[完整修正实用版]
  2. linux基础(一)安装系统Centos6.5
  3. python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例
  4. 机器学习知识点(二)各类型平均数Java实现
  5. MySQL往数据库中存入中文字符时变问号
  6. bcache使用教程
  7. Kali下的内网劫持(一)
  8. mongodb 系列 ~ mongo的两种引擎对比
  9. 06 - 雷达发射机 概述
  10. HTML5+CSS3+Bootstrap开发静态页面嵌入android webview中
  11. MySQL参数max_connect_errors分析释疑
  12. 2018-01-20 HDU 4609 FFT 快速傅里叶变换
  13. kafka reassign 限速_高速限速有了新规矩!公路限速标志设计规范即将施行
  14. SAP各种BOM详解(包含常用BAPI)
  15. 有哪些日记app可以用来记录生活?
  16. 第二次作业------仿制网站
  17. 湖南科技大学计算机技术专硕,2021年湖南科技大学电子信息(085400)计算机技术_考研专业目录_考试科目_考试范围 - 学途吧...
  18. 《Effective Objective-C 2.0》读书笔记
  19. 注册咨询工程师,这个证书作用是什么?
  20. 如何在SOLIDWORKS工程图中,快速进行尺寸标注?

热门文章

  1. 解决ROS常遇到的Couldn’t find executable named报错
  2. nginx resolver失败
  3. 校园网使用家用无线路由器
  4. 家用无线路由器购买入门指南
  5. 从 MySQL 数据页的角度看 B+ 树
  6. vue form表单验证清除
  7. 机器人鸣人是哪一集_博人传鸣人出场集数 博人传佐助哪几集出现过
  8. BH1750光强度传感器Stm32f103驱动(已测试ok)
  9. Gram矩阵简单解释
  10. 记录MYSQL死锁日志分析