Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by shisashi
def r(n, i, v, x):
if n == 4:
return i + v
elif n == 9:
return i + x
return (v if n >= 5 else '') + (i * (n % 5))
def checkio(data):
ans = 'M' * (data // 1000)
ans += r(data % 1000 // 100, 'C', 'D', 'M')
ans += r(data % 100 // 10, 'X', 'L', 'C')
ans += r(data % 10, 'I', 'V', 'X')
return ans
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio(6) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
Feb. 16, 2014