解题思路: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; }