新闻动态
你的位置:开云(中国)Kaiyun·体育官方网站-登录入口 > 新闻动态 > 罗马数字中小的数字在大的数字的右边-开云(中国)Kaiyun·体育官方网站-登录入口
罗马数字中小的数字在大的数字的右边-开云(中国)Kaiyun·体育官方网站-登录入口

发布日期:2024-04-20 05:13    点击次数:99

1、编程试题:

罗马数字包含以下七种字符: 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.

2、代码结束:

可剪辑代码如下:

#!/usr/bin/python3.9

# -*- coding: utf-8 -*-

#

# Copyright (C) 2024 , Inc. All Rights Reserved

#

# @Time : 2024/3/3 10:29

# @Author : fangel

# @FileName : [leetcode] 12. 整数转罗马数字.py

# @Software : PyCharm

class Solution:

def intToRoman(self, num: int) -> str:

# 要津1:先将罗马数字里的常见字符和对应的数字按照从大到小进行排序

valueList = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];

keyList = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];

resList = ""

# 要津2:针对给定的数字,循序从valueList表格里进行减法运算

for i in range(0, len(valueList)):

# 当该数值大于valueList中的元素时,一直减valueList中的元素,直到投入下一个位数

while num >= valueList[i]:

num = num - valueList[i]

resList += str(keyList[i])

return resList

# 得到输入, 类型为字符串

input = int(input())

# 调用函数

print(Solution().intToRoman(input))

3、代码分析:

先将罗马数字里的常见字符和对应的数字按照从大到小进行排序,然后针对给定的数字,循序从valueList表格里进行减法运算

ps:罗马时期数字大小有限,合计千就如故很大了,当扩充99999时后果就有点惊吓了

99999

MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMCMXCIX

4、启动后果:

输入:87

输出:LXXXVII