首页 文章资讯内容详情

在 Python 中将整数转换为罗马数字的程序

2026-06-03 1 花语

假设我们有一个数字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