Given
The operation of drinking a full water bottle turns it into an empty bottle.
Find the maximum number of water bottles you can drink.
numBottles
full water bottles, you can exchange numExchange
empty water bottles for one full water bottle.The operation of drinking a full water bottle turns it into an empty bottle.
Find the maximum number of water bottles you can drink.
Example:
Input: numBottles=9,numExchange=3
Output: 13
Approach
Java
public class WaterBottles {public static void main(String[] args) {int numBottles = 9;int numExchange = 3;int drink = numWaterBottles(numBottles, numExchange);System.out.println(drink);}static public int numWaterBottles(int numBottles, int numExchange) {// base caseif (numBottles < numExchange)return numBottles;int drink = numBottles;while (numBottles > 0 && numBottles >= numExchange) {int remE = numBottles % numExchange;drink += numBottles / numExchange;numBottles = remE + numBottles / numExchange;}return drink;}}
C++
#include <bits/stdc++.h>using namespace std;//function to count the number of bottlesint numWaterBottles(int numBottles, int numExchange){int ans=numBottles;int x=ans;while(x>=numExchange){ans+=x/numExchange;int y=x%numExchange;x=x/numExchange;x=x+y;}return ans;}int main(){int numBottles=9;int numExchange=3;cout<<numWaterBottles(numBottles,numExchange);return 0;}
No comments:
Post a Comment