在 Python 中将整数转换为罗马数字的程序
假设我们有一个数字num。我们必须将其转换为等效的罗马数字。罗马数字包含如下符号和值-
“我”=1
“V”=5
“X”=10
“L”=50
“C”=100
“D”=500
“M”=1000
这些符号通常按从大到小、从左到右的顺序书写,并且可以通过将所有符号的值相加来计算。但也有一些特殊情况,低值符号在高值符号的左边,表示高值减去低值。
这些是这种情况的例子-
“I”在“V”之前,值为4。
“I”在“X”之前,值为9。
“X”在“L”之前,值为40。
“X”在“C”之前,值为90。
“C”在“D”之前,值为400。
“C”在“M”之前,值为900。
在罗马数字中也有一些规则-
没有符号重复超过3次。
符号“V”、“L”和“D”不再重复。
因此,如果输入像n=1520,那么输出将是“MDXX”,因为“MDXX”表示1000+500+10+10=1520。
示例
让我们看看以下实现以获得更好的理解-
def solve(num):
res = ""
table = [
(1000, "M"),
(900, "CM"),
(500, "D"),
(400, "CD"),
(100, "C"),
(90, "XC"),
(50, "L"),
(40, "XL"),
(10, "X"),
(9, "IX"),
(5, "V"),
(4, "IV"),
(1, "I"),
]
for cap, roman in table:
d, m = divmod(num, cap)
res += roman * d
num = m
return res
num = 1520
print(solve(num))输入
1520输出结果
MDXX