问题描述:
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。
解题思路:
变量解释:money总金额数,price汽水单价,exchange几个空瓶可以换一瓶汽水。
total可以喝到的总瓶数,bottle空瓶数。
有money元钱,一共可以喝到total = money / price瓶汽水。
喝完后剩余bottle = total个空瓶子。
可以兑换(bottle / exchange)瓶新的汽水,剩余( bottle%exchange)个空瓶子,不足兑换一瓶新的汽水。
新兑换的汽水喝完后又会有( bottle / exchange)个空瓶子剩余, 所以目前剩余空瓶子为:bottle = bottle / exchange + bottle%exchange 个空瓶子。
以此循环,直到剩余的瓶子(bottle%exchange)不足以兑换一瓶新的汽水结束。
#include <stdio.h>
int main()
{
int money = 20; //总钱数
int price = 1; //汽水单价
int exchange = 2; //两个瓶子换一瓶
int total = 0; //汽水总数
int bottle = 0; //空瓶数量
total = money / price;
bottle = total;
while (bottle > exchange)
{
total += bottle / exchange;
bottle = bottle / exchange + bottle % exchange;
}
printf("一共喝到%d瓶汽水", total);
return 0;
}
程序结果: