牛客编程赛题目(欢迎大家讨论指正~给出更好的方法~~)
欢迎大家讨论指正~给出更好的方法~~牛牛是一个酒鬼,非常爱喝酒,一瓶酒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; } }
#题解#