问题描述:每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。
思路:20块钱最起码开始喝20瓶汽水,汽水喝完后剩下20个空瓶子。20个瓶子可以换10瓶汽水,喝完后再可以兑换5瓶汽水……依此类推即可得到最终的结果。程序实现如下:
#include <stdio.h>
#define MAX 20
int main()
{
int money=MAX;
int count=MAX;
while(1)
{
if(money%2!=0) //如果空瓶子数n不是偶数,则可以兑换2n-1个
{
count=count+money-1;
break;
}
else //如果空瓶子数n是偶数,则可以兑换n/2个
{
money=money/2;
count+=money;
}
}
printf("%d\n",count);
system("pause");
return 0;
}
结果:39。