#P1051. HDSF大学保研机试-2022-罗马数字

HDSF大学保研机试-2022-罗马数字

题面

罗马数字是古罗马使用的记数系统,现今仍很常见。

罗马数字有七个基本符号: I,V,X,L,C,D,M。

罗马数字 I V X L C D M
对应的阿拉伯数字 11 55 1010 5050 100100 500500 10001000

需要注意的是罗马数字与十进位数字的意义不同,它没有表示零的数字,与进位制无关。按照下述的规则可以表示任意正整 数。

“标准”形式

重复次数:一个罗马数字重复几次,就表示这个数的几倍。

右加左减:

  • 1.在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。
  • 2.在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。
  • 3.左减的数字有限制,仅限于I,X,C.例如4545表示XLV,而不是VL
  • 4.左减时不可跨越一个位值。例如,9999是XCIX([10010]+[101]) ([100- 10]+ [10- 1]),而不是IC ([1001])([100 - 1])。等同于阿拉伯数字每位数字分别表示。
  • 5.左减数字必须为一位,比如88是VIII,而不用IIX
  • 6.罗马数字V,L,D中的任何一个放在较大的罗马数字右边只能使用一个。
  • 7.右加连续相同数字不超过三位,比如1414是XIV,而不是XIIII

现在给出一个阿拉伯数字表示的十进制正整数,输出其对应的罗马数字。

输入格式

一行十进制整数(1n1000)(1 \leq n \leq 1000)

输出格式

一行字符串,表示对应的罗马数字

样例

input

3

output

III