zoukankan      html  css  js  c++  java
  • 12. Integer to Roman

    def solution(num):
        if(0<num<=5):
            if(num<4):
                return (num)*"I"
            else:
                return (5-num)*"I"+"V"
        elif(5<num<=10):
            return "V"+(num-5)*"I"
        elif(10<num<=50):
            left_10=num%10
            if(0<=left_10<=5):
                if(left_10<4):
                    return (num/10)*"X"+(left_10)*"I"
                else:
                    return (num/10)*"X"+(5-left_10)*"I"+"V"
            else:
                if(5<left_10<9):
                    return (num/10)*"X"+"V"+(left_10-5)*"I"
                else:
                    return (num/10)*"X"+(10-left_10)*"I"+"V"
        elif(50<num<=100):
            left_50=num%50
            if(10<left_50<=50):
                left_10=left_50%10
                if(0<=left_10<=5):
                    if(left_10<4):
                        return (num/50)*"L"+(left_50/10)*"X"+(left_10)*"I"
                    else:
                        return (num/50)*"L"+(left_50/10)*"X"+(5-left_10)*"I"+"V"
                else:
                    if(5<left_10<9):
                        return (num/50)*"L"+(left_50/10)*"X"+"V"+(left_10-5)*"I"
                    else:
                        return (num/50)*"L"+(left_50/10)*"X"+(10-left_10)*"I"+"V"
        elif(100<num<=500):
            left_100=num%100
            if(50<left_100<=100):
                left_50=left_100%50
                if(10<left_50<=50):
                    left_10=left_50%10
                    if(0<=left_10<=5):
                        if(left_10<4):
                            return (num/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(left_10)*"I"
                        else:
                            return (num/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(5-left_10)*"I"+"V"
                    else:
                        if(5<left_10<9):
                            return (num/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+"V"+(left_10-5)*"I"
                        else:
                            return (num/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(10-left_10)*"I"+"V"
        elif(500<num<1000):
            left_500=num%50
            if(100<left_500<=500):
                left_100=left_500%100
                if(50<left_100<=100):
                    left_50=left_100%50
                    if(10<left_50<=50):
                        left_10=left_50%10
                        if(0<=left_10<=5):
                            if(left_10<4):
                                return (num/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(left_10)*"I"
                            else:
                                return (num/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(5-left_10)*"I"+"V"
                        else:
                            if(5<left_10<9):
                                return (num/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+"V"+(left_10-5)*"I"
                            else:
                                return (num/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(10-left_10)*"I"+"V"
        else:
            left_1000=num%1000
            if(500<left_1000<1000):
                left_500=left_1000%50
                if(100<left_500<=500):
                    left_100=left_500%100
                    if(50<left_100<=100):
                        left_50=left_100%50
                        if(10<left_50<=50):
                            left_10=left_50%10
                            if(0<=left_10<=5):
                                if(left_10<4):
                                    return (num/1000)*"M"+(left_1000/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(left_10)*"I"
                                else:
                                    return (num/1000)*"M"+(left_1000/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(5-left_10)*"I"+"V"
                            else:
                                if(5<left_10<9):
                                    return (num/1000)*"M"+(left_1000/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+"V"+(left_10-5)*"I"
                                else:
                                    return (num/1000)*"M"+(left_1000/500)*"D"+(left_500/100)*"C"+(left_100/50)*"L"+(left_50/10)*"X"+(10-left_10)*"I"+"V"
    
    print(solution(9))
  • 相关阅读:
    最近要看的项目
    Lavarel Route::resource
    架构,性能
    Unity ToLua & LuaFramework_UGUI学习笔记(zz)
    Unity UI 布局
    Introduction to Unity UI
    Unity more efficient find
    unity UI如何开启(显示)或者关闭(隐藏)Panel界面最好?
    Unity Canvas vs Panel
    Unity实现新手引导圆形遮罩
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10506635.html
Copyright © 2011-2022 走看看