Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Roman Numerals solution in Clear category for Roman Numerals by Poetakodu
def checkio(data):
symbols = ["I","V","X","L","C","D","M"]
# 0 1 2 3 4 5 6
result = ""
if data//1000 > 0:
for i in range(data//1000):
result += symbols[6]
data -= 1000 * (data//1000)
if data >= 900:
result += symbols[4] + symbols[6]
data -= 900
if data >= 500:
result += symbols[5]
for i in range((data//100)-5):
result += symbols[4]
data -= 100 * (data//100)
if data >= 400:
result += symbols[4] + symbols[5]
data -= 400
if data >= 100:
for i in range(data//100):
result += symbols[4]
data -= 100 * (data//100)
if data >= 90:
result += symbols[2] + symbols[4]
data -= 90
if data >= 50:
result += symbols[3]
for i in range((data//10)-5):
result += symbols[2]
data -= 10 * (data//10)
if data >= 40:
result += symbols[2] + symbols[3]
data -= 40
if data >= 10:
for i in range(data//10):
result += symbols[2]
data -= 10 * (data//10)
if data == 9:
result += symbols[0] + symbols[2]
return result
if data >= 5:
result += symbols[1]
for i in range(data-5):
result += symbols[0]
return result
if data == 4:
result += symbols[0] + symbols [1]
return result
else:
for i in range(data):
result += symbols[0]
return result
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(6) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
Oct. 23, 2016
Comments: