此算法最后手里定剩一个空瓶,,,,没有设计到:最后剩一个空瓶,找老板借得一空瓶,换取水喝完后,把手里的空瓶还给老板。
#include <stdio.h>
#include <assert.h>
int drink_water(unsigned int money)
{
int bot = money;
int empty = money;
while(empty > 1)
{
bot +=empty/2;
empty=empty/2+empty%2;
}
return bot;
}
int main()
{
unsigned int money;
int bottles;
scanf("%u",&money);
bottles = drink_water(money);
printf("you can drink %d bottles of water\n",bottles);
return 0;
}