• + 0 comments

    My solution in Java 8:

    public static int chocolateFeast(int n, int c, int m) {
        // Write your code here
            //n is the number of money Bobby has, he uses once
            //Bobby takes full advantage of promotion, hence, wrappers are used many times
            
            //Steps:
            /*
                1. Calculate intial bars, also intial wrappers.
                2. Create a loop, until Bobby cant trade, that updates bars and new wrappers (remain ones + traded ones)
                3. Return result
                
            */
            
            int bars = n / c; //Initial bars
            int remainWrapper = bars; //Inital wrappers 
            
            while(remainWrapper >= m){
                //While he can trade
                int trade = remainWrapper / m;
                remainWrapper = remainWrapper - trade * m + trade;
                //remainWrapper = remainWrapper % m + trade;
                
                bars += trade;
            }
            
            return bars;
        }