问题描述:一块钱可以买一瓶汽水,两个空瓶能换一瓶汽水,现在有20块钱,问能喝多少瓶汽水。
#include<stdio.h>
int Maxdrink(int n)
{
int total = n;
int empty = n;
//int tmp = 0;
while (empty > 1)
{
if (empty % 2 != 0) //奇数
{
//tmp = 1; //多余了一个空瓶
total += (empty - 1) / 2;
empty = (empty - 1) / 2;
empty = empty + 1;
}
else //偶数
{
total += empty / 2;
empty = empty / 2;
}
}
return total;
}
int main()
{
printf("%d\n",Maxdrink(20));
//printf("%d\n",Maxdrink(21));
return 0;
}