李白喝酒 递归算法(C语言)
题目:话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
解法(C语言)
#include<stdio.h>
#include<stdlib.h>
int sum = 0;
char t[16] = {'\0'};
//遇到1是店 2是花
void f(int jiu, int dian, int hua,int yudao,int num)
{int i;if (dian + hua == 15){if (jiu == 0 && yudao == 2 && dian == 5 && hua == 10){sum++;for (i = 0; i < 16; i++){if (t[i] == 1)printf("a");else if (t[i] == 2)printf("b");}printf("\n");}}else{t[num] = 1;f(jiu * 2, dian + 1, hua, 1,num+1);//遇到店t[num] = 2;f(jiu - 1, dian, hua + 1, 2,num+1);//遇到花}
}
void main()
{f(2,0,0,0,0);printf("一共有%d中可能方案!",sum);system("pause");
}
//2019年12月31日20:09:32
李白喝酒 递归算法(C语言)相关推荐
- 快速排序的递归算法C语言
下面展示快速排序的递归算法 C语言 Dev-C++ 算法思路是:添加一个基准数k和一头一尾的两个伪指针i和j. 一般将第一个元素首先作为基数k,即k=a[1].每一趟的目的是,让基数左边的数都小于(大 ...
- c语言的递归算法流程图,递归算法C语言全解.ppt
递归算法C语言全解 第四章 递归算法 [例5]集合的划分 [问题描述] 设S是一个具有n个元素的集合,S={a1,a2,--,an},现将S划分成k个满足下列条件的子集合S1,S2,--,Sk ,且满 ...
- c语言李白喝酒答案,李白嗜酒文言文答案
李白嗜酒文言文答案以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 1. <李白嗜酒>的译文 李白字太白,山东 ...
- c语言李白喝酒答案,趣題C解(1)--李白喝酒問題
"李白街上走,提壺去買酒,遇店加一倍,見花喝一斗",途中,遇見5次店,見了10此花,壺中原有2斗酒,最后剛好喝完酒,要求最后遇見的是花,求可能的情況有多少種? 分析:題目要求最后是 ...
- 李洋疯狂C语言之用递归解决李白喝酒问题(二)
之前用递归求出了多少种情况,如果要打印出所有的结果,就需要一个数组来存放可能的情况: /****************************************************** 题 ...
- 李洋疯狂C语言之用递归解决李白喝酒问题(附填空题解法)
这是14年蓝桥杯的一道填空题 题目:"李白街上走,提壶去买酒,遇店加一倍,见花喝一斗", 途中,遇见5次店,见了10此花,壶中原有2斗酒,最后刚好喝 完酒,要求最后遇见的是花,求可 ...
- 李白喝酒 c语言编程题,python算法练习题:李白喝酒
话说大诗人李白,一生好饮.一天,他提着酒壶,从家里出来,酒壶中有酒2斗. 他边走边唱:无事街上走,提壶去打酒.逢店加一倍,遇花喝一斗.这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花, ...
- 李白打酒c语言编程,c/c++开发分享蓝桥杯-李白喝酒
更多精彩文章请关注 问题 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒两斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共遇 ...
- c语言如何实现递归算法,c语言递归算法如何实现
c语言递归算法如何实现 发布时间:2020-09-22 14:22:05 来源:亿速云 阅读:186 作者:小新 这篇文章将为大家详细讲解有关c语言递归算法如何实现,小编觉得挺实用的,因此分享给大家做 ...
最新文章
- Flutter 案例学习之:GridView
- Web高级征程:《大型网站技术架构》读书笔记系列
- ASP.NET中过滤HTML字符串的两个方法
- linux网络编程之setsockopt()函数来设置socket状态以及getsockopt函数只用总结
- System.arraycopy()实现数组之间的复制
- C++调用.lib的方法
- 第15章-使用远程服务
- linux脚本中使用转义括号,Linux之shell中的大括号、中括号、小括号的使用详解+多示例...
- 一文读懂APS系统的核心算法和数学理论
- mysql查询每门课程成绩最好的前两名学生id和姓名
- PMP 管理学6大定律之五(布鲁克斯定律)
- 什么是HomeAssistant(一)
- “工时通”助力新工作方式
- 通过城市的名字来获取到省份的名字(java)
- JavaScript 优雅的 对象数组 提取函数
- ES集群宕机后处理——重新分配shards,负载均衡
- 项目三《小米官网仿写》
- 解决HDF5 library version mismatched error
- Apache Harmony的介绍
- spacemacs使用彩虹猫