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))
  • 相关阅读:
    tp6 控制器不存在:appindexcontrollerIndex
    thinkphp助手函数
    thinkphp5.1、thinkphp6
    lnmp安装
    关于像秒杀这种高并发场景的解决方案
    C# 基于hslcommunication的异步,同步,一对多,webapi等跨程序网络框架实现,适用程序-程序通信
    C# 调用Python脚本 python脚本反调用C#方法 python脚本调用另一个脚本
    C# webapi服务器,创建自定义的,简单的web服务器,供远程接口调用
    C# 创建mqtt服务器,mqtt发布数据,验证逻辑
    C# 实现 websocket 服务器 发送客户端网页前端数据,C#和网页前端通信
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10506635.html
Copyright © 2011-2022 走看看