转罗马数字

写一个程序将一个正整数转换为“罗马数字”。
假定构造罗马数字的规则如下:在罗马数字系统中,i代表1,v代表5,x代表10,l代表50,c代表100,d代表500,m代表1000。代表大数的符号通常出现在代表小数的符号之前,一个罗马数字的值一般是它们所代表的数之和。例如,ⅱ代表2,viii代表8。然而,如果代表小数的符号出现在代表大数的符号之前,这两个符号的值就是它们所代表的值的差。例如iv代表4,ix代表9,lix代表59。记住,在罗马数字里,不能有四个相连的符号都是相同的。例如,iv代表4,但是iiii不行。按照这样的规则,构造出的罗马数字可能不是唯一的,例如 mcmxc和mxm都代表1990。虽然程序构造出的罗马数字不需要是最短的,但是不要用vv代表10,ll代表100,dd代表1000,或者,vvv代表15等。
输入
一行一个正整数x,保证正x小于5000。
输出
一行字符串,表示x的罗马数字形式。
样例
输入
8
输出
viii

信息

ID
2719
难度
9
分类
(无)
标签
递交数
3
已通过
1
通过率
33%
上传者