题目:两元一瓶啤酒,两个空酒瓶可以兑换一瓶啤酒,四个盖子可以兑换一瓶啤酒,请问15元可以喝多少瓶啤酒
代码:
int money = 15; //15元
int beerNum = 0; //啤酒总数
int bottleNum = 0; //瓶子数
int capNum = 0; //盖子数
beerNum = (int)money / 2;
bottleNum = (int)money / 2;
capNum = (int) money / 2;
while (bottleNum >= 2 || capNum >= 4) { //当啤酒空瓶数大于2或啤酒盖子数大于4循环执行
if (bottleNum >= 2) { //当啤酒空瓶数大于2
capNum += (int)bottleNum / 2; //啤酒盖子加上用空瓶子兑换新的啤酒的数量
beerNum += (int)bottleNum / 2; //啤酒总数加上用空瓶子兑换的心得啤酒的数量
bottleNum = (int)(bottleNum / 2 + bottleNum % 2); //啤酒空瓶的数量等于兑换的新的啤酒瓶数加上兑换剩下的瓶子个数
}
if (capNum >= 4) { //当啤酒盖子数大于4
bottleNum += capNum / 4;
beerNum += capNum / 4;
capNum = (int)(capNum / 4 + capNum % 4);
}
}
NSLog(@"beerNum = %d , capNum = %d , bottleNum = %d",beerNum,capNum,bottleNum); //beerNum = 23 , capNum = 3 , bottleNum = 1