转罗马数字

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

写一个程序将一个正整数转换为“罗马数字”。
假定构造罗马数字的规则如下:在罗马数字系统中,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

2024.8.10暑期中级2班练习

未参加
状态
已结束
规则
OI
题目
3
开始于
2024-08-10 10:00
结束于
2024-08-11 22:00
持续时间
36.0 小时
主持人
参赛人数
10