解题思路:2元可以喝3瓶,4元可以喝7瓶,5元可以喝9瓶……依次可得规律:有n元可以喝2*n-1瓶,判断空瓶的数量,是奇数则兑换n-1瓶,为偶数则兑换
#include<stdio.h>
#include<windows.h>
int buy_water(int money)
{ int count=money;
while(money){
if(money%2!=0){ //如果空瓶是奇数,则兑换n-1瓶
count+=money-1;
break;
}
else{ //如果是偶数则兑换n瓶
money/=2;
count+=money;
}
}
return count;
}
int main(){
int money=20;
int n=0;
n=buy_water(money);
printf("%d\n",n);
system("pause");
return 0;
}