程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 求大神解答一下-java,初學者不太清楚

求大神解答一下-java,初學者不太清楚

編輯:編程解疑
java,初學者不太清楚

1元一瓶飲料,兩個空瓶可以換一瓶飲料,三個瓶蓋可以換一瓶飲料,20塊錢可以喝多少瓶飲料?

最佳回答:


 package test1.test1;

public class Ale  {
    static int money = 20;     // 多少錢
    static int per = 1;        // 多少錢買一瓶 >0
    static int empty = 2;    // 多少空瓶換一瓶 >0
    static int cap = 3;        // 多少瓶蓋換一瓶 >0
    static int sum = 0;     // 總數 

    public static void main(String[] args) {
        for(int i=1;i<=20;i++) {
            money = i;
            cal(money/per,0,0);
            System.out.println(money+"元錢共可以喝:"+sum+" 瓶");
            sum = 0;
        }

    }
    /**
     * 計算方法
     * @param i    換一輪之後還沒喝的瓶數 
     * @param j    空瓶數
     * @param k    瓶蓋數
     */
    public static void cal(int i,int j,int k) {
        int i1=0,j1=0,k1=0;
        sum += i; // 一開始喝完
        j += i;// 喝完後的空瓶數
        k += i;// 喝完後的瓶蓋數
        if(j >= empty) {// 空瓶可以換
            i1 += j/empty;
            j1 = j%empty; // 換了之後的空瓶數
        }else { // 空瓶不能換
            j1 = j;
        }
        if(k >= cap) {// 瓶蓋可以換
            i1 += k/cap;
            k1 = k%cap; // 換了之後的瓶蓋數
        }else { // 瓶蓋不能換
            k1 = k;
        }
        if(i1 >0 || j1 >= empty || k1 >= cap) {
            // 如果可以換則繼續
            cal(i1,j1,k1);
        }
    }
}

運行結果:
1元錢共可以喝:1 瓶
2元錢共可以喝:5 瓶
3元錢共可以喝:11 瓶
4元錢共可以喝:17 瓶
5元錢共可以喝:23 瓶
6元錢共可以喝:29 瓶
7元錢共可以喝:35 瓶
8元錢共可以喝:41 瓶
9元錢共可以喝:47 瓶
10元錢共可以喝:53 瓶
11元錢共可以喝:59 瓶
12元錢共可以喝:65 瓶
13元錢共可以喝:71 瓶
14元錢共可以喝:77 瓶
15元錢共可以喝:83 瓶
16元錢共可以喝:89 瓶
17元錢共可以喝:95 瓶
18元錢共可以喝:101 瓶
19元錢共可以喝:107 瓶
20元錢共可以喝:113 瓶

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved