zoukankan      html  css  js  c++  java
  • 38.leetcode12_integer_to_roman

    1.题目描述

    Given an integer, convert it to a roman numeral.

    十进制数字转为罗马数字

    2.题目分析

    罗马数字计数方法

    基本字符
    I
    V
    X
    L
    C
    D
    M
    相应的阿拉伯数字表示为
    1
    5
    10
    50
    100
    500
    1000
    1. 相同的数字连写、所表示的数等于这些数字相加得到的数、如:Ⅲ=3;
    2. 小的数字在大的数字的右边、所表示的数等于这些数字相加得到的数、 如:Ⅷ=8、Ⅻ=12;
    3. 小的数字(限于 I、X 和 C)在大的数字的左边、所表示的数等于大数减小数得到的数、如:Ⅳ=4、Ⅸ=9;
    4. 正常使用时、连写的数字重复不得超过三次;
    5. 在一个数的上面画一条横线、表示这个数扩大 1000 倍。

    3.解题思路

     1 class Solution(object):
     2     def intToRoman(self, num):
     3         """
     4         :type num: int
     5         :rtype: str
     6         """
     7         strs=""
     8         x=0
     9         if num>=1000: #从千位以上开始依次计算
    10             x=num/1000
    11             num-=1000*x
    12             strs+=x*"M"
    13         if num>=900: 
    14             num-=900
    15             strs+="CM"
    16         if num>=500:
    17             x=(num-500)/100
    18             num=num%100
    19             strs+="D"+x*"C"
    20         if num>=400:
    21             num-=400
    22             strs+="CD"
    23         if num>=100:
    24             x=num/100
    25             num-=x*100
    26             strs+=x*"C"
    27         if num>=90:
    28             num-=90
    29             strs+="XC"
    30         if num>=50:
    31             x=(num-50)/10
    32             num=num%10
    33             strs+="L"+x*"X"
    34         if num>=40:
    35             num-=40
    36             strs+="XL"
    37         if num>=10:
    38             x=num/10
    39             num-=x*10
    40             strs+=x*"X"
    41         if num==9:
    42             num=0
    43             strs+="IX"
    44         if num>=5:
    45             x=num-5
    46             num=0
    47             strs+="V"+x*"I"
    48         if num==4:
    49             num=0
    50             strs+="IV"
    51         if num!=0:
    52             strs+=num*"I"
    53             num=0
    54         if num==0:
    55             return strs
  • 相关阅读:
    MS SQL Server迁移至Azure SQL
    Aras Innovator 11 sp2 firefox客户端设置
    Aras Innovator 11 sp2 IE客户端设置
    Aras Innovator 11 sp2安装
    JDK Windows安装
    mocha测试es6问题
    jQuery中animate与scrollTop、offset().top实例
    AI下载步骤
    Visual Studio Code必备插件
    Visual Studio code快捷键
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/8470731.html
Copyright © 2011-2022 走看看