日期:2014-05-20 浏览次数:20715 次
public static void main(String[] args) { System.out.println(buy(10)); } /** * * @param money 給了多少錢 * @return */ static int buy(int money) { return buy(money / 1, 0);//1元錢喝一瓶滿的,開始時空瓶數量為0 } /** * * @param fullNum 满瓶的汽水有多少瓶 * @param emptyNum 空瓶有多少个 * @return 可以最多喝多少瓶 */ static int buy(int fullNum, int emptyNum) { if (fullNum == 0)//沒有滿瓶的汽水了 return 0; emptyNum += emptyNum + fullNum;//满瓶汽水喝完了剩下多少个空瓶 return fullNum + buy(emptyNum / 2, emptyNum % 2);//2个空瓶可以换一个满瓶汽水,最后还剩下多少个空瓶不能换 }