Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by slickLash
def checkio(data):
result = []
reminder = data
groups = [('I', 'V', 'X'), ('X', 'L', 'C'), ('C', 'D', 'M'), ('M', None, None)]
convert = lambda n, g1, g2, g3: g1 * n if n < 4 else g1+g2 if n == 4 else g1+g3 if n == 9 else g2+g1 * (n - 5)
divisor = 1000
while reminder:
group = groups.pop()
quotient, reminder = divmod(reminder, divisor)
if quotient:
result.append(convert(quotient, *group))
divisor //= 10
return ''.join(result)
March 5, 2015
Comments: