1.喝汽水编程思路
(1)首先是用现有的钱购买汽水,一共是20元,所以第一次是有20瓶汽水,即有20个空瓶。
(2)这20个空瓶进行兑换,能够得到新的10瓶汽水。即有10个空瓶。
(3)再将这10个空瓶进行兑换,又能得到新的5瓶汽水,即有5个空瓶。
(4)现在问题是五个空瓶只能换2瓶新汽水,剩余1个空瓶(不算新换的2个空瓶)。这两瓶喝完又可以兑换1瓶汽水,这1瓶汽水喝完和上次剩余的1个空瓶结合又可以兑换1瓶汽水。
因此换到最后一共是:20+10+5+2+1+1=39瓶汽水。
2.代码编写
代码如下(示例):
#include<stdio.h>
#include<windows.h>
#pragma warning (disable:4996)
//喝汽水问题
int buy_Soda(int money){
int count = money;//买到的汽水数量
int newExchangeCount=1;//新换的汽水数量
int newExchangeCountResidue;//新换剩余的空瓶子数量
while (newExchangeCount != 0){
newExchangeCount = money / 2;//新换的汽水数量
newExchangeCountResidue = money % 2;//新换的剩余空瓶子数量
money = newExchangeCount + newExchangeCountResidue;//此时money就相当于用空瓶子换的汽水数量
count = count + newExchangeCount;//总数量就是买到的数量+新换来的数量
}
return count;
}
int main()
{
int money = 0;
printf("请输入钱数:");
scanf("%d",&money);
int soda=buy_Soda(money);
printf("可以喝到%d瓶汽水\n",soda);
system("pause");
return 0;
}
程序结果如下: