牛客 牛牛愛喝酒(模擬)
阿新 • • 發佈:2020-12-10
技術標籤:LintCode及其他OJ
文章目錄
1. 題目
連結:https://ac.nowcoder.com/acm/contest/9752/A
來源:牛客網
牛牛是一個酒鬼,非常愛喝酒,
一瓶酒m元錢,
兩個酒瓶可以換一瓶酒,
四個瓶蓋可以換一瓶酒,
現在有 n 元錢,求最多可以喝多少瓶酒?
(注:沒有借貸功能,即最終不允許借一瓶酒、喝完後拿酒瓶兌換歸還的操作)
示例1
輸入
2,12
返回值
19
說明
牛牛總計可以喝19瓶酒
備註:
0 < m < 100
0 < n < 2000
2. 解題
class Solution {
public :
/**
* 程式碼中的類名、方法名、引數名已經指定,請勿修改,直接返回方法規定的值即可
* 返回牛牛能喝的最多的酒
* @param m int整型 酒單價
* @param n int整型 牛牛的現金
* @return int整型
*/
int countWine(int m, int n) {
// write code here
if(n < m) return 0;
int ans = 0, gai = 0, bottle = 0;
while(n/m+ gai/4+bottle/2 > 0)
{
int newWine1 = n/m;
n -= newWine1*m;
ans += newWine1;
gai += newWine1;
bottle += newWine1;
int newWine2 = gai/4;
gai += -newWine2*4+newWine2;
bottle += newWine2;
ans + = newWine2;
int newWine3 = bottle/2;
gai += newWine3;
bottle += -newWine3*2+newWine3;
ans += newWine3;
}
return ans;
}
};
我的CSDN部落格地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!