C语言之喝汽水问题

个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客

题目:

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。

我们假设是10元。先喝10瓶汽水,10个空瓶换了5瓶汽水,喝了5瓶汽水,5个空瓶换了2瓶汽水,剩了一个空瓶,喝了2瓶汽水,2个空瓶换了1瓶汽水,喝了1瓶汽水,剩了一个空瓶,加上我们之前剩的那瓶汽水,刚好又换1瓶汽水,最后,只剩下1瓶汽水了。

上面的都是我们用语言文字描述的,转换为数学文字即可。

#include 
int main()
{
	int money = 0;
	scanf("%d", &money);//20
	int empty = 0;
	int sum = 0;
	sum = money;
	empty = money;
	while (empty >= 2)//空瓶数量少于2时,就没有汽水喝了
	{
		sum += empty / 2;//空瓶的数量除以2,就是可以换汽水的数量
		empty = empty / 2 + empty % 2;//换汽水的数量等于空瓶的数量。empty % 2是上一次换汽水剩下的(要么是0,要么是1)
	}
	printf("%d\n", sum);
	return 0;
}

至于这个剩下的1个空瓶,再去和老板借一瓶喝完在给他,这个我们是不考虑的。 

你可能感兴趣的:(C语言,c语言,算法)