1,题目描述
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)
思路分析
以20元为例,可以买20瓶汽水,还剩20个空瓶,20个又换了10瓶,10个又换了5瓶,5个换两瓶还剩一个空瓶,3个换一瓶还有一个空瓶,最后换了一瓶,这样算下来,一共能喝39瓶。看起来可以简单的算出来,但要是钱的数额特别大呢?
题目可以看出,俩空瓶换一瓶,20瓶可以看做20/2得到换来的10瓶,3瓶可以看成5/2 5%2(剩一个空瓶不够换,先换一瓶在凑起来换),这里需要用一个total变量来存储喝的汽水总量,而瓶子的个数没换一次就等于原来的个数/2 原来的个数%2(为0说明瓶子够换)。
代码语言:javascript复制#include<stdio.h>
int main()
{
int money=0;
int total=0;
int empty=0;
scanf("%d",&money);
total=money;
empty=money;
while(empty>1)
{
total =empty/2;
empty=empty/2 empty%2;
}
printf("%d",total);
return 0;
}