暴力 模拟
1、初始化 钱买 sum =(n/m)瓶酒,喝完 剩 瓶 x=(n/m) ,盖y=(n/m)。
2、不能借贷,所以瓶 盖 都拿去换酒。每当 瓶数量大于等于2(x>=2) 或 盖数量大于等于4 (y>=4) 都能换酒。
3、维护 喝的酒数 sum = sum + x/2 + y/4 ; 瓶数 x=(x%2)+ x/2 + y/4 ; 盖数 y=(y%4)+ x/2 + y/4 ;
4、直到 瓶数小于2 和盖数小于4(不能借贷,所以不能再换酒)。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回牛牛能喝的最多的酒 * @param m int整型 酒单价 * @param n int整型 牛牛的现金 * @return int整型 */ public int countWine (int m, int n) { // write code here int sum = n/m;int x = n/m;int y = n/m; while(x>=2||y>=4){ //一次 把瓶子和盖子都换完 sum = sum + x/2 + y/4; int tx = (x%2) + x/2 + y/4; int ty = (y%4) + y/4 + x/2; x = tx;y=ty; } return sum; } }