Basic program to convert integer to Roman numerals?

后端 未结 24 1328
孤独总比滥情好
孤独总比滥情好 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:35

    This is my recursive function approach to convert a number to its roman equivalent

        def solution(n):
            # TODO convert int to roman string
            string=''
            symbol=['M','D','C','L','X','V','I']
            value = [1000,500,100,50,10,5,1]
            num = 10**(len(str(n))-1)
            quo = n//num
            rem=n%num
            if quo in [0,1,2,3]:
                string=string+symbol[value.index(num)]*quo
            elif quo in [4,5,6,7,8]:
                tem_str=symbol[value.index(num)]+symbol[value.index(num)-1]
                        +symbol[value.index(num)]*3
                string=string+tem_str[(min(quo,5)-4):(max(quo,5)-3)]
            else:
                string=string+symbol[value.index(num)]+symbol[value.index(num)-2]
            if rem==0:
                return string
            else:
                string=string+solution(rem)
            return string
    
    print(solution(499))
    print(solution(999))
    print(solution(2456))
    print(solution(2791))
    CDXCIX
    CMXCIX
    MMCDLVI
    MMDCCXCI
    

提交回复
热议问题