1. 程式人生 > >k個瓶子可以換1瓶酒,要喝n瓶酒,最少需要買多少瓶酒?

k個瓶子可以換1瓶酒,要喝n瓶酒,最少需要買多少瓶酒?

分析

這個題很簡單,但是一開始自己想複雜了,所以記錄一下吧。
這個題最後的思路其實就是:我一瓶一瓶買,買一瓶喝一瓶,喝一瓶就一個空瓶子,喝到有k個空瓶我就去換一瓶,然後繼續一瓶一瓶買...直到最後我喝了n瓶就完事了。

程式碼

public static int wine(int n, int k){
        if(k<=0 || n<=0)
            return -1;

        //當前買酒數量
        int buy = 0;
        //當前喝的酒數
        int cur = 0;
        //當前空瓶子數量
        int
empty = 0; while(cur <= n){ buy++; cur++; empty++; //空瓶子每夠k個就去換1瓶酒 if(empty % k == 0){ cur++; empty = 1; } } return buy; }