题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。
通过题目可以达成共识:
- 20元可以换20瓶可乐,第一次喝完空瓶有20
- 分奇数个空瓶和偶数个空瓶
- 每次可以换取的可乐数=空瓶数/2
- 每次剩下的空瓶数=换取之前空瓶数/2+换取之前空瓶数%2
代码如下:
#include<stdio.h>
#include<windows.h>
int drinkcole(int money)
{
int total = money; //用来统计喝到可乐的总量
int empty = money; //用来统计空瓶数量
while (empty>1){
total += empty / 2;
empty = empty / 2 + empty % 2; //空瓶数=上次空瓶数/2+上次空瓶数除二的余数
}
printf("%d\n", total);
return 0;
}
int main()
{
int money = 20;
drinkcole(money);
system("pause");
}