暴力 模拟
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;
}
} 


京公网安备 11010502036488号