2532: 罗马数字

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:6 解决:4

题目描述

假定构造罗马数字的规则如下:在罗马数字系统中,i 代表 1,v 代表 5,x 代表 10,
l 代表 50,c 代表 100, d 代表 500,m 代表 1000。代表大数的符号通常出现在代表小数
的符号之前,一个罗马数字的值一般是它们所代表的数之和。例如,ii 代表 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