问题描述:
1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?
这个问题其实是个比较典型的递推问题,每2个空瓶都可以再换1瓶新的汽水,这样一直递推下去,直到最后不能换到汽水为止。
解法一:
/*
* description:
* 1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?
*
* auther: cm
* date:2010/11/28
*/
#include <stdio.h>
#define MONEY 20 //钱数
#define PRICE 1 //汽水单价
#define PERCOUNT 2 //兑换规则
int main(void)
{
int drinkNum = 0; //喝掉的汽水数量
int emptyNum = 0; //空瓶数量
int num = MONEY / PRICE;//汽水数量
while (num > 0)
{
drinkNum += num;
emptyNum += num;//空瓶子数量等于上次剩余的加上这次喝掉的数量
num = emptyNum / PERCOUNT;//兑换的汽水数量
emptyNum -= num * PERCOUNT;//本次兑换剩余的空瓶子数量
}
printf("drinkNum: %d\n",drinkNum);
printf("emptyNum: %d\n", emptyNum);
return 0;
}
解法二:
数学推导
设汽水单价为P, 瓶子价钱为x, 汽水实际价钱为y(即除去瓶子价钱), N个空瓶兑换一瓶汽水,总钱数为M
x + y = P
N * x = P
可求得x, y
则喝的汽水总数为:M / y
如上面那道题:
x = 0.5
y = 0.5
结果为:20 / 0.5 = 40
注:
分享到:
相关推荐
解决小明喝汽水问题 为了以后扩展方便,我还是做成了一个maven工程和一个maven模块的目录结构。 与spring进行整合,使用起来更加方便。 问题描述: 1、小明手上有50元钱; 2、1元钱可以买一瓶饮料; 3、2个空瓶可以...
《小学数学数学故事数学童话北游记5八戒喝汽水》这个故事是将数学问题融入到了有趣的故事情境中,旨在帮助小学生理解和运用数学知识。在这个故事中,主要涉及了货币计算、数量关系和推理思维等数学概念。 首先,...
#### 2.1 喝汽水问题 这是一个典型的动态规划问题,旨在计算给定一定数量的空瓶,通过交换能够获得的最大汽水数量。 - **问题描述**:某商店规定可以用三个空瓶换取一瓶新的汽水,现在给出了一定数量的空瓶,计算...
小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一...
智力题5(喝汽水问题)是一个涉及数学和经济思维的问题。通过分析每一轮的汽水与空瓶的兑换关系,找出最优的消费策略,从而最大化汽水的消费数量。这个问题要求解题者具有良好的数学计算能力和经济成本分析能力。 ...
5. **喝汽水问题**:这个问题涉及到交换和最大化利用资源。初始20元可买20瓶汽水,喝完后有20个空瓶,可以换10瓶,再喝完9瓶换1瓶加1个空瓶,共喝了30瓶。再用剩下的2个空瓶和新产生的1个空瓶换1瓶,喝完后又剩1个...
幼儿园小班科学活动教案《小熊喝汽水》润新教育.txt
- **喝汽水问题**:通常与消费行为分析有关。 - **分割金条**:涉及几何分割、最优解寻找等问题。 - **鬼谷考徒**:此类问题可能涉及古代文化和智慧故事。 - **舀酒难题**:可能与容器容量、液体转移等相关。 - **五...
【活动主题】:本次中班科学活动以"制作好喝的汽水"为主题,旨在让孩子们通过实际操作,了解汽水的制作原理,同时激发他们的探索兴趣和动手能力。 【科学知识】: 1. **二氧化碳气体**:汽水中的关键成分就是二...
喝汽水问题 数组全排列 工厂模式 抽象工厂模式 单例模式 建造者模式 原型模式 适配器模式 算法 矩阵顺序输出 输入一个矩阵,按照从外向里已顺时针依次打印出每个数字,例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
幼儿园教案2021-中班科学活动:制作好喝的汽水.doc
c程序问题:1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶
通过上述分析,我们可以看到此代码片段有效地解决了“给定金额下最多能喝到多少瓶啤酒”的问题。递归函数`GetCount`的设计巧妙地实现了对空瓶和瓶盖的有效利用,从而使得计算过程简洁明了。此外,通过简单的主函数...
1元一瓶汽水,两个空瓶可以换一瓶,问20元可以喝多少瓶.exe
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。要求: (1) 用递归的方法计算能喝到的啤酒数目。 (2) 函数的原型为 int getNum(int n); (3) 不能定义全局变量。
此示例说明了如何分析来自仪器化汽水机的数据,以回答诸如一天中哪个时间喝汽水最多以及哪种饮料向 MathWorkers 提供最多咖啡因等问题。 此示例要求用户首先安装 ThingSpeak 的 MATLAB 支持,可在此处获得: ...
这种效果模拟了用户浏览页面时,仿佛在慢慢喝汽水,汽水液面随着滚动条的移动而变化。 首先,我们需要了解这个效果的基本原理。瓶子图像通常由瓶口、瓶身、吸管和瓶底等多个部分组成,这些部分的内部是透明的,以便...
12. 汽水问题:如果20元买汽水,喝完20瓶后,有20个空瓶,可以换10瓶汽水。喝完10瓶,有10个空瓶,可换5瓶。喝完5瓶,4个空瓶换1瓶,喝完这1瓶,剩3个空瓶。再向店主借1个空瓶,凑齐4个换1瓶,喝完后归还店主那个借...
### 知识点二:空瓶换汽水问题 #### 题目描述: 如果1元钱可以买1瓶汽水,喝完后可以用2个空瓶换取1瓶汽水。若花费20元购买汽水,最多能喝到多少瓶汽水? #### 解析: 这个问题实际上是在考察等价交换和递归思维。...