个人技术分享

喝汽水问题

问题描述:
喝汽水,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;
}

程序结果: