In this post, we will solve **Chocolate Feast HackerRank Solution**. This problem **(Chocolate Feast)** is a part of **HackerRank Problem Solving** series.

**Task**

Little Bobby loves chocolate. He frequently goes to his favorite **5 & 10** store, Penny Auntie, to buy them. They are having a promotion at Penny Auntie. If Bobby saves enough wrappers, he can turn them in for a free chocolate.

**Example**

*n* = 15*c* = 3*m* = 2

He has **15** to spend, bars cost **3**, and he can turn in **2** wrappers to receive another bar. Initially, he buys **5** bars and has **5** wrappers after eating them. He turns in **4** of them, leaving him with **1**, for **2** more bars. After eating those two, he has **3** wrappers, turns in **2** leaving him with **1** wrapper and his new bar. Once he eats that one, he has **2** wrappers and turns them in for another bar. After eating that one, he only has wrapper, and his feast ends. Overall, he has eaten **5 + 2 + 1 + 1 = 9** bars.

**Function Description**

Complete the *chocolateFeast* function in the editor below.

chocolateFeast has the following parameter(s):

*int n:*Bobby’s initial amount of money*int c:*the cost of a chocolate bar*int m:*the number of wrappers he can turn in for a free bar

**Returns**

*int:*the number of chocolates Bobby can eat after taking full advantage of the promotion

**Note**: Little Bobby will always turn in his wrappers if he has enough to get a free chocolate.

**Input Format**

The first line contains an integer, * t*, the number of test cases to analyze.

Each of the next

*lines contains three space-separated integers:*

**t***,*

**n***, and*

**c***. They represent money to spend, cost of a chocolate, and the number of wrappers he can turn in for a free chocolate.*

**m****Constraints**

**1 <=***t*<= 1000**2 <=***n*<= 10^{5}**1 <=***c*<=*n***2 <=***m*<=*n*

**Sample Input**

```
STDIN Function
----- --------
3 t = 3 (test cases)
10 2 5 n = 10, c = 2, m = 5 (first test case)
12 4 4 n = 12, c = 4, m = 4 (second test case)
6 2 2 n = 6, c = 2, m = 2 (third test case)
```

**Sample Output**

```
6
3
5
```

**Explanation**

Bobby makes the following **3** trips to the store:

- He spends
**10**on**5**chocolates at**2**apiece. He then eats them and exchanges all**5**wrappers to get**1**more. He eats**6**chocolates. - He spends his
**12**on**3**chocolates at**4**apiece. He has**3**wrappers, but needs**4**to trade for his next chocolate. He eats**3**chocolates. - He spends
**6**on**3**chocolates at**2**apiece. He then exchanges**2**of the**3**wrappers for**1**additional piece. Next, he uses his third leftover chocolate wrapper from his initial purchase with the wrapper from his trade-in to do a second trade-in for**1**more piece. At this point he has**1**wrapper left, which is not enough to perform another trade-in. He eats**5**chocolates.

**Solution – Chocolate Feast – HackerRank Solution**

**C++**

#include <iostream> using namespace std; int main() { int t, n, c, m; cin >> t; while (t--) { cin >> n >> c >> m; int answer = n / c; int wrappers = answer; // Spend wrappers for additional chocolates. while (wrappers >= m) { wrappers -= m; // Eat chocolate, produce new wrapper. answer++; wrappers++; } cout << answer << endl; } return 0; }

**Python**

import sys def wrappers(wr, m): res = 0 if wr//m > 0: res += wr//m + wrappers(wr//m + wr%m, m) return res def chocolateFeast(n, c, m): return n//c + wrappers(n//c, m) if __name__ == "__main__": t = int(input().strip()) for a0 in range(t): n, c, m = input().strip().split(' ') n, c, m = [int(n), int(c), int(m)] result = chocolateFeast(n, c, m) print(result)

**Java**

import java.io.*; import java.util.*; public class Solution { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); scanner.nextLine(); while (scanner.hasNext()) { int money = scanner.nextInt(); int price = scanner.nextInt(); int bonus = scanner.nextInt(); int count = money / price; int wrappers = count; while (wrappers >= bonus) { int freebies = wrappers / bonus; count += freebies; wrappers = freebies + wrappers % bonus; } System.out.println(count); } } }

**Note:** This problem **(Chocolate Feast)** is generated by **HackerRank** but the solution is provided by **CodingBroz**. This tutorial is only for **Educational** and **Learning** purpose.