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