Basic program to convert integer to Roman numerals?

后端 未结 24 1369
孤独总比滥情好
孤独总比滥情好 2020-11-30 11:52

I\'m trying to write a code that converts a user-inputted integer into its Roman numeral equivalent. What I have so far is:

The point of the generate_

24条回答
  •  臣服心动
    2020-11-30 12:22

    Another way. I wrote recursive loop by roman symbols, so the max depth of recursion equals length of roman tuple:

    ROMAN = ((1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'),
        (100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'),
        (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I'))
    
    def get_romans(number):
        return do_recursive(number, 0, '')
    
    
    def do_recursive(number, index, roman):
        while number >= ROMAN[index][0]:
            number -= ROMAN[index][0]
            roman += ROMAN[index][1]
        if number == 0:
            return roman
        return check_recursive(number, index + 1, roman)
    
    
    if __name__ == '__main__':
        print(get_romans(7))
        print(get_romans(78))
    

提交回复
热议问题