目录
题目要求:
已知1瓶汽水1元,2个空瓶可以换⼀瓶汽⽔,输⼊整数n(n>=0),表⽰n元钱,计算可以多少汽水,请编程实现。
题目分析:
- 根据题目要求,n表示为钱数,所以一开始使用scanf输入的数值其实是金额,为此我们要在设立一个变量,以此来表示汽水的数量 —— 设汽水的数量为p
- 再度根据题目的要求,一个汽水瓶是一瓶空瓶,而空瓶是题中重要的因素,为此,我们需要为空瓶设立一个变量 —— 设空瓶数量为 k
- 根据题目要求,两个空瓶可以兑换一瓶汽水,所以在扣除金钱的来的汽水之后,剩下的汽水数量是和空瓶有关系的 —— p = k/2
- 如上图分析得到,空瓶的总量除去先前用金钱购买得到汽水,再从汽水变成的空瓶外,空瓶的数量是 用空瓶兑换汽水后,汽水在变成的空瓶 ,以及剩余的无法抵达兑换条件而落下的空瓶 ——k = k/2 + k%2
- 题目要求,求取最后可以换取多少瓶汽水,所以汽水的数量是需要累加的,因此,k/2=p 需要改变成 p= k+k/2 ,而p也就变成了汽水的总数量
- 且因为是使用金钱购买的,所以汽水数量的初值是为金钱的额度,所以 p = n
代码演示:
![](https://i-blog.csdnimg.cn/blog_migrate/8ae18d7b812ad6efe25699b43aeb9799.png)