规则:
例如罗马数字要表示2,就用2个I来表示,写成II;要表示30, 则写成XXX
2、不相同的几个数码并列时:6用罗马数字可以表示为VI,800就是DCCC,58就是LVIII
(2)、如果小的数码(1个,且只能是I、X、C)在左边,就表示数的数值是这几个数码的差;4用罗马数字可以表示为IV,
通常也只有4、9、40、90、400、900分别表示为IV、IX、XL、XC、CD、CM
|
|
翻discuss翻出来的,先上代码:
|
|
这段代码其实是错的,它假定了一个串各种需要减的场合最多出现一次,例如输入为”IXIXIX”时,结果应该是27,但是程序的输出却是31。
改进代码如下:
|
|
题目限定的输入是1-3999,所以最简单粗暴的方法就是枚举,把数字的个十百千位分别表示成罗马数字,然后拼接
|
|
这种解法的弊端在于需要的空间有点大
|
|