k個瓶子可以換1瓶酒,要喝n瓶酒,最少需要買多少瓶酒?
阿新 • • 發佈:2018-12-25
分析
這個題很簡單,但是一開始自己想複雜了,所以記錄一下吧。
這個題最後的思路其實就是:我一瓶一瓶買,買一瓶喝一瓶,喝一瓶就一個空瓶子,喝到有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;
}