curriculum/challenges/english/blocks/daily-coding-challenges-python/6821ebea237de8297eaee795.md
Given an integer representing the number of candles you start with, and an integer representing how many burned candles it takes to create a new one, return the number of candles you will have used after creating and burning as many as you can.
For example, if given 7 candles and it takes 2 burned candles to make a new one:
You will have burned 13 total candles in the example.
burn_candles(7, 2) should return 13
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(burn_candles(7, 2), 13)`)
}})
burn_candles(10, 5) should return 12
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(burn_candles(10, 5), 12)`)
}})
burn_candles(20, 3) should return 29
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(burn_candles(20, 3), 29)`)
}})
burn_candles(17, 4) should return 22
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(burn_candles(17, 4), 22)`)
}})
burn_candles(2345, 3) should return 3517
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(burn_candles(2345, 3), 3517)`)
}})
def burn_candles(candles, leftovers_needed):
return candles
def burn_candles(candles, leftovers_needed):
total_burned = 0
unused_leftovers = 0
while candles > 0:
total_burned += candles
leftovers = candles + unused_leftovers
candles = leftovers // leftovers_needed
unused_leftovers = leftovers % leftovers_needed
return total_burned