喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。
看到题目时我们可以先分析一下,不用着急写代码。
首先我们有20元,1元1瓶汽水,可以直接买20瓶,然后2个空瓶可以换一瓶汽水。
- 最开始的时候,有多少钱就可以买多少瓶汽水
- 创建一个余数项,判断每次兑换完是否有空瓶剩余
- 每次的空瓶数等于上次的空瓶数除以2再加上余数
- 剩余1个空瓶时将不能再进行兑换(这里不考虑借空瓶)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Drink_SodaWater(int total)
{
int bottle = total;//1瓶1元,最初可以买money瓶
int remainder = 0;//余数,每次换完有无剩余的空瓶
while(bottle > 1)//剩余1个瓶子时就不能再兑换了
{
total += bottle/2;//2个空瓶换1瓶
remainder = bottle%2;
bottle = bottle/2 + remainder;
}
return total;
}
int main()
{
int money = 0;
printf("请输入money:");
scanf("%d",&money);
printf("%d\n",Drink_SodaWater(money));
return 0;
}
运行结果