編程題_汽水瓶

題目詳述:汽水瓶

題目解析:當有n個空瓶時候,我們設總共可以喝total瓶飲料,那麼當n>2時,說明我們可以去換飲料喝。3個換一瓶,那麼可以換n/3瓶飲料。接下來,這些飲料喝完後,勢必還有空瓶。那麼喝完n/3瓶飲料之後的空瓶數是多
少?
答案是:n/3+n%3。這裏需要注意:n/3代表換來的飲料,但是這些喝完之後,不就是空瓶嗎?相同的爲什麼需要n%3? 因爲比如n=4,最後的空瓶數應該是2。不就是n/3+n%3嗎?到這裏,我們在看一下。n>2時,可以去換,那
麼n=2時,我們可以去商鋪借一瓶飲料。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n;
        while(sc.hasNext()){
            n =sc.nextInt();
            if(n!=0) {
                System.out.println(drink(n));
            }
        }
    }

    private static int drink(int n) {
        int total = 0;//飲料總數
        //當大於兩個空瓶的時候纔可以換飲料
        while(n > 2) {
            total = total+n/3; //n/3-->能夠換來的飲料
            n = n/3 + n%3; //新的空瓶子個數--》n%3可能會不能整除
        }

        //如果n==2,說明有兩個空瓶可以喝商家借一瓶飲料
        if(n == 2) {
            total = total + 1;
        }
        return total;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章