在 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