欢迎大家讨论指正~给出更好的方法~~
牛牛是一个酒鬼,非常爱喝酒,一瓶酒m元钱,两个酒瓶可以换一瓶酒,四个瓶盖可以换一瓶酒,现在有 n 元钱,求最多可以喝多少瓶酒?
(注:没有借贷功能,即最终不允许借一瓶酒、喝完后拿酒瓶兑换归还的操作)
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 返回牛牛能喝的最多的酒
* @param m int整型 酒单价
* @param n int整型 牛牛的现金
* @return int整型
*/
public int countWine (int m, int n) {
int buy = n/m; //表示买的酒的数量
int beer = buy; //瓶子的数量
int gai = buy; //瓶盖的数量
while(true){
if(beer >=2){ //用酒瓶子换,并更新瓶和盖的数量
buy = buy + beer/2;
gai = gai + beer/2;
beer = beer/2 + beer%2;
}
if(gai >=4){ //用酒盖换,并更新瓶和盖的数量
buy = buy + gai/4;
beer = beer + gai/4;
gai = gai/4 + gai%4;
}
if(gai <4 && beer <2){ //不满足条件停止循环
break;
}
}
return buy;
}
}
全部评论
(2) 回帖