Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Roman Numerals by Kurush
def checkio(Data):
RomanPart = ""
MPart = Data / 1000
if MPart > 0:
RomanPart += GetRomanPart("", "", "M", MPart)
CPart = Data / 100 - MPart * 10
if CPart > 0:
RomanPart += GetRomanPart("M", "D", "C", CPart)
XPart = Data / 10 - MPart * 100 - CPart * 10
if XPart > 0:
RomanPart += GetRomanPart("C", "L", "X", XPart)
IPart = Data - MPart * 1000 - CPart * 100 - XPart * 10
if IPart > 0:
RomanPart += GetRomanPart("X", "V", "I", IPart)
return RomanPart
def GetRomanPart(SBig, Big, Small, PartInt):
ResultRoman = ""
if PartInt < 4:
for i in range(1, PartInt + 1):
ResultRoman += Small
if PartInt == 4: ResultRoman = Small + Big
if PartInt == 5: ResultRoman = Big
if PartInt > 5 and PartInt < 9:
ResultRoman = Big
for i in range(1, PartInt - 5 + 1):
ResultRoman += Small
if PartInt == 9: ResultRoman = Small + SBig
return ResultRoman
#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'
June 12, 2013