可能重复:
How do you find a roman numeral equivalent of an integer
我正在寻找一种简单的算法(最好是在Python中)。如何将给定的整数转换为罗马数?
string Roman(int Num){...}
例如,Roman(1981)必须制作“MCMLXXXI”。
答案 0 :(得分:3)
我需要相反的一次(从罗马数字到int
)。 Wikipedia提供了有关罗马数字如何工作的令人惊讶的详细信息。一旦你意识到事情是如此明确定义并且规范可以轻松实现,将其转换为代码是相当微不足道的。
答案 1 :(得分:1)
答案 2 :(得分:1)
查看此ActiveState link的代码。代码看起来很好。
答案 3 :(得分:1)
我想不出具有此功能的第三方库。有时候你必须自己写一些东西,尽管有很多关于如何在网上做这个的例子。这是RoseIndia
中的一个答案 4 :(得分:0)
对于数百,数十和单位,规则几乎相同,即你有一个1,5和10个字符,每个字符的表示方式都相同,只是字母改变了。
您可以拥有一个包含10个条目的表格,表示模板 0 - 1 = U. 2 = UU 3 = UUU 4 = UF 5 = F. 6 = FU 7 = FUU 8 = FUUU 9 = UT
现在还有单位,数十和数百你的表: 单位= IVX 十分= XLC 数百= CDM
将数字模板应用于字母表示,以便U替换为第一个字符,F替换为秒,T替换为3。
每千人只有几千人。
从千位开始构建字符串,然后是数百种,然后是数十种,然后是单位。
如果你正在向后构建它,你当然可以从单位修改10开始,然后构建你的单位字符串,除以10并再次调整mod并转换到十字符串,重复数百个字符串,当你到达数字字符串,你会知道你的字符串只有一个字符即M。