首页 > 其他分享 >12. 整数转罗马数字(中)

12. 整数转罗马数字(中)

时间:2024-02-26 20:55:05浏览次数:32  
标签:elif 12 return 示例 整数 IV 罗马数字 num

目录

题目

  • 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给你一个整数,将其转为罗马数字。

示例 1:

输入: num = 3
输出: "III"

示例 2:

输入: num = 4
输出: "IV"

示例 3:

输入: num = 9
输出: "IX"

示例 4:

输入: num = 58
输出: "LVIII"
解释: L = 50, V = 5, III = 3.

示例 5:

输入: num = 1994
输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.

题解

class Solution:
    def intToRoman(self, num: int) -> str:
        s = ''
        a = {'M': 1000, 'CM': 900, 'D': 500, 'CD': 400, 'C': 100, 'XC': 90, 'L': 50, 'XL': 40, 'X': 10, 'IX': 9, 'V': 5, 'IV': 4, 'I': 1}
        if num == 4:
            return "IV"
        elif num == 9:
            return "IX"
        elif num == 40:
            return "XL"
        elif num == 90:
            return "XC"
        elif num == 400:
            return "CD"
        elif num == 900:
            return "CM"
        while num:
            for key, value in a.items():
                while num >= value:#确保在每次减去数值后重新进行循环判断
                    num -= value
                    s += key
        return s

标签:elif,12,return,示例,整数,IV,罗马数字,num
From: https://www.cnblogs.com/lushuang55/p/18035144

相关文章

  • 89th 2024/1/12 GDKOI
    题外话新一年的第一篇总结拖到了现在快到GDKOI的时候,忽然brokeout了一场流感所以被感染后影响了接下来一系列事情只想说身体是学习的基础,要保持好健康GDKOI挺失败的,也可能是因为带低烧去打的原因脑袋有点混混沌沌的,想不清东西,赛后发现一些失误后追悔莫及Day1的题目难度较......
  • 【Gorm 错误收集】Error 1215 (HY000): Cannot add foreign key constraint
    错误:Error1215(HY000):Cannotaddforeignkeyconstraint相关mysql错误:Error1215(HY000):Cannotaddforeignkeyconstraint。场景:为了方便测试人员测试产品的功能以及后续报告,PM设计了一个测试用例的功能,用于记录需要测试的产品的操作步骤。针对这个功能,我建立......
  • 「PR #12」电塔
    首先考虑小小地转化题意:我们知道第\(i\)座电塔的终点\(y_i\)必然大于等于\((i-1)d\),并且\(y_i-(i-1)d\)是单调不降的。所以我们将\(x_i\leftarrowx_i-(i-1)d\)然后求一个单调不降的非负整数序列\(a\)并最小化\(\sum\limits_{i=1}^n|x_i-a_i|\)。这是一个经典题。我们......
  • 2.12
    JavaScript对象在JavaScript中,几乎所有的事物都是对象。 在JavaScript中,对象是非常重要的,当你理解了对象,就可以了解JavaScript。 你已经学习了JavaScript变量的赋值。以下代码为变量 car 设置值为"Fiat":var car= "Fiat";对象也是一个变量,但对象......
  • Java基础12:JavaDoc生成文档
    JavaDoc1.javadoc命令是用来生成自己API文档的2.参数信息2.1@author作者名2.2@version版本号2.3@since指明需要最早使用的jdk版本2.4@param参数名2.5@return返回值情况2.6@throws异常抛出情况 ......
  • 《程序是怎样跑起来的》第12章读书笔记
    来到了这本书的最后一章。如何让计算机学习,那么什么是机器学习机器学习指的是让计算机这种机器来学习。在机器学习中程序员只编写用于学习的程序。这个程序的内容是让计算机读取大量的数据,然后学习这些数据的特征并生成一个识别模型这里模型指的是识别机制。机器学习也有很多方法......
  • 3代 I3 3220 对比12代 G6900 测试
    3代I33220对比12代G6900测试I33220的CPU-Z,和cinebenchr23跑分。G6900的CPU-Z,和cinebenchr23跑分。 I33220 CPU-Z单核:300,多核心:827.R23 单核:639,多核心:1557. G6900CPU-Z单核:541,多核心:1057.R23 单核:1271,多核心:2444. END ......
  • 第12章让计算机思考的程序实现方式
    程序的使用目的:大致可以划分为作为工具与代替执行人类思考两类1工具类:如文字处理器,excel等程序主要用于作为工具提升工作效率2代替人类思考类:如微计算机控制电饭煲,根据米和水的分量自动调节火的大小与加热时间常见用程序表示人类的思考方式:1随机性,用于模仿人思考的随意性,没有......
  • 《程序是怎么跑起来》的第五次读后感(11 12章)
    《程序是怎么跑起来的》第11章计算机的硬件是计算机系统中各种设备的总称。计算机的硬件应包括5个基本部分,即运算器、控制器、存储器、输入设备、输出设备,各基本部件的功能各异。运算器能进行加、减、乘、除等基本运算。存储器不仅能存放数据,而且也能存放指令,计算机应能区分是数据......
  • UVA12422 (Kengdie) Mua (II) - Expression Evaluator 题解
    题目传送门闲话蒟蒻的第一篇黑题题解!连着花了\(12\)个小时才做出来,打代码\(6\)小时,调试\(6\)小时。一开始怎么编也编不过,直到看到了tiger大神的题解才豁然开朗。思路本题主要是输出函数或运算式子的结果,最重要的就是判断优先级。tiger大神提出了表达式树法和递归......