1. 程式人生 > 實用技巧 >【leetcode】1518. Water Bottles

【leetcode】1518. Water Bottles

題目如下:

GivennumBottlesfull water bottles, you can exchangenumExchangeempty water bottles for one full water bottle.

The operation of drinking a full water bottle turns it into an empty bottle.

Return themaximumnumber of water bottles you candrink.

Example 1:

Input: numBottles = 9, numExchange = 3
Output: 13
Explanation: You can exchange 3 empty bottles to get 1 full water bottle.
Number of water bottles you candrink: 9 + 3 + 1 = 13.

Example 2:

Input: numBottles = 15, numExchange = 4
Output: 19
Explanation: You can exchange 4 empty bottles to get 1 full water bottle. 
Number of water bottles you candrink: 15 + 3 + 1 = 19.

Example 3:

Input: numBottles = 5, numExchange = 5
Output: 6

Example 4:

Input: numBottles = 2, numExchange = 3
Output: 2

Constraints:

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

解題思路:很簡單的題目,遞迴計算即可。

程式碼如下:

class Solution(object):
    def numWaterBottles(self, numBottles, numExchange):
        """
        :type numBottles: int
        :type numExchange: int
        :rtype: int
        """
        res = numBottles
        empty 
= numBottles while empty >= numExchange: exchange = empty/numExchange empty -= exchange*numExchange empty += exchange res += exchange return res