Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.
- 规则 - 相同的数字连写,所表示的数等于这些数字相加得到的数,如III=3 - 小的数字在大的数字右边,所表示的数等于这些数据相加得到的数VIII=8,XII=12 - 小的数字,限于I、X、C在大的数字左边,所表示的数等于大数减去小数得到的数,如IV=4,IX=9; - 正常使用时,连写的数字重复不得超过三次 - 在一个数的上面画一条横线,表示这个数扩大1000倍 - 注意事项 - 基本数字I、X、C中的任何一个 自身连用构成数目,或者放在大数右边构成数目,都不能超过三个,放在大数左边不能超过一个 - 不能把基本数字VLD中的任何一个作为小数放在大数的左边采用相减的方法构成数目,放在大数的右边采用相加的方式构成数目,只能使用一个 - V和X的左边的小数字只能用I,且只能有一个 - L和C左边的小数字只能用X,且只能有一个 - D和M左边的小数字只能用C,且只能有一个 - 算法:对数字的每位逐个判断 - 如果该位数字是9,则说明是上面3、4、5这三种情况中的一种,即把I、X、C中的一个放到了大数字的左侧; - 如果该位数字是5~8,则说明是上面1这种情况,即I、X、C中的一个,自身连用或者放在大数的右边连用; - 如果该位数字是4,则说明同样是上面3、4、5这三种情况中的一种,即把I、X、C中的一个放到了大数字的左侧; - 如果该位数字是0~3,则同样说明是上面1这种情况,即I、X、C中的一个,自身连用或者放在大数的右边连用。