遞迴思想----解決飲料問題

北巷思煙雨發表於2017-10-02

/**
 *問題:假如1塊錢可以買1瓶汽水,3個瓶蓋可以換一瓶汽水
 *     ,2個空瓶可以換一瓶汽水,編一段程式計算20塊錢
 *      總共可以買多少瓶汽水?
 */
public class recursion {
  public static int drinksNum;
  public static int bottle;
  public static int cap;
  /**
   * 獲取初始數目即賦初值
   * @param money
   */
  public static  void buydrinks(int money) {
     drinksNum = money;
     bottle = money;
     cap = money;     
  } 
  /**
   * 根據瓶子即瓶蓋數判斷是否滿足兌換條件
   * @return  返回值為最終所得數目
   */
  public static int getNum(){
      if(cap/3>=1||bottle/2>=1) {
          int temp = (cap/3+bottle/2);    //兌換的飲料數目
          drinksNum += (cap/3+bottle/2);  //增加後的飲料數目
          bottle =bottle -(bottle/2)*2 +temp;//兌換後的空瓶數目
          cap =cap - (cap/3)*3+temp;   //兌換後的蓋子數目
          getNum();  
          }
    return drinksNum;
  }
  public static void main(String[] args) {
        buydrinks(20);
        int count = getNum();
        System.out.println(count);
    }

}

相關文章