Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def checkio(data):
- roman_dict = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
- # SET VARIABLES
- result = ""
- key_value = len(roman_dict)-1 # LAST INDEX from
- R_KEY = sorted(roman_dict.keys(), key = lambda x: roman_dict[x]) # Sorted keys from roman_dict
- def dig_to_roman(data, result, key_value):
- #print("key : ", key_value)
- if data >= roman_dict[R_KEY[key_value]]: # STARTS FROM "M" - > "D" -> ... "I"
- minus = roman_dict[R_KEY[key_value]]
- #print(data, R_KEY[key_value], minus//5)
- if int(str(data)[0]) == 9:
- result += R_KEY[key_value-1]
- result += R_KEY[key_value+1]
- minus = (minus//5) * 9
- elif int(str(data)[0]) == 4:
- result += R_KEY[key_value]
- result += R_KEY[key_value+1]
- minus = (minus) * 4
- elif int(str(data)[0]) == 3:
- result += R_KEY[key_value]*3
- minus = (minus *3 )
- elif data == 0:
- return result
- else:
- result += R_KEY[key_value]
- return dig_to_roman(data-minus, result, key_value)
- elif data != 0 : # TRY ANOTHER ROMAN NUMBER
- return dig_to_roman(data, result, key_value-1)
- else:
- return result
- return dig_to_roman(data, "", key_value)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement