【贪心算法】换酒问题

简介: 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。

小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。



如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。

请你计算 最多 能喝到多少瓶酒。


示例 1:

输入:numBottles = 9, numExchange = 3

输出:13


解释:你可以用 3 个空酒瓶兑换 1 瓶酒。

所以最多能喝到 9 + 3 + 1 = 13 瓶酒。


示例 2:

输入:numBottles = 15, numExchange = 4

输出:19


解释:你可以用 4 个空酒瓶兑换 1 瓶酒。

所以最多能喝到 15 + 3 + 1 = 19 瓶酒。


示例 3:

输入:numBottles = 5, numExchange = 5

输出:6

示例 4:


输入:numBottles = 2, numExchange = 3

输出:2

提示:

 

1 <= numBottles <= 100
    2 <= numExchange <= 100


Javascript



/**
 * @param {number} numBottles
 * @param {number} numExchange
 * @return {number}
 */
var numWaterBottles = function(numBottles, numExchange) {
    var count = numBottles
    while(numBottles>=numExchange){
        count+=Math.floor(numBottles/numExchange)
        numBottles = Math.floor(numBottles/numExchange)+numBottles%numExchange
    }
    return count
};


Python



import math
class Solution:
    def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
        count = numBottles
        while numBottles >= numExchange:
            count += math.floor(numBottles/numExchange)
            numBottles = math.floor(
                numBottles/numExchange)+numBottles % numExchange
        return count
相关文章
|
6月前
|
存储 算法 Java
贪心算法和动态规划
贪心算法和动态规划
82 0
|
1月前
|
人工智能 算法 安全
|
4月前
|
存储 监控 算法
贪心算法(2024/7/16)
【7月更文挑战第18天】
46 9
|
6月前
|
人工智能 Kubernetes 算法
贪心算法 - 常见的问题总结(二)
贪心算法 - 常见的问题总结(二)
|
6月前
|
人工智能 算法 NoSQL
贪心算法 - 常见的问题总结(一)
贪心算法 - 常见的问题总结(一)
|
6月前
|
机器学习/深度学习 Kubernetes 算法
贪心算法 - 常见的问题总结(三)
贪心算法 - 常见的问题总结(三)
|
算法 Java 调度
贪心算法详解
贪心算法详解
137 0
|
算法
【贪心算法】初步介绍
【贪心算法】初步介绍
80 0
|
算法
【贪心算法】删数问题
【贪心算法】删数问题
68 0
|
人工智能 算法
贪心算法的证明题
贪心算法的证明题
204 0