#6486. B:罗马数字 (Roman Numerals)

B:罗马数字 (Roman Numerals)

题目 B:罗马数字 (Roman Numerals)

属性 规格
输入文件 标准输入 (Standard Input)
输出文件 标准输出 (Standard Output)
时间限制 10 秒
内存限制 256 MB
最大分值 22 分

题目描述

古罗马人使用一套与我们今天使用的阿拉伯数字不同的计数系统。在罗马系统中,数字由字母 ‘I’、‘V’、‘X’、‘L’、‘C’、‘D’ 和 ‘M’ 的组合表示。每个字母代表一个固定的正整数值:

符号 I V X L C D M
数值 1 5 10 50 100 500 1000

计数规则:

  1. 加法原则:通常情况下,将不大于当前数值的最大符号写下,然后递归地处理剩余数值。例如,738 表示为 DCCXXXVIII (500+100+100+10+10+10+5+1+1+1500+100+100+10+10+10+5+1+1+1)。
  2. 减法原则(Subtractive Notation):为了减少符号数量,罗马人使用减法表示法。
    • 4 和 9:分别写作 IV (515-1) 和 IX (10110-1)。
    • 40 和 90:分别写作 XL (501050-10) 和 XC (10010100-10)。
    • 400 和 900:分别写作 CD (500100500-100) 和 CM (10001001000-100)。

常见数字示例:

  • 1-10: I, II, III, IV, V, VI, VII, VIII, IX, X
  • 10-100 (十倍数): X, XX, XXX, XL, L, LX, LXX, LXXX, XC, C

任务: 给定两个以罗马数字表示的正整数 AABB,计算它们的和,并以罗马数字格式输出。

输入格式

  • 第一行:一个字符串,表示正整数 AA (1A39991 \le A \le 3999)。
  • 第二行:一个字符串,表示正整数 BB (1B39991 \le B \le 3999)。

输出格式

  • 输出一个字符串,表示 A+BA+B 的罗马数字形式。

样例

输入 (Standard Input) 输出 (Standard Output) 解释
II
III
V 2+3=52 + 3 = 5
IV
XI
XV 4+11=154 + 11 = 15
XLIX
L
XCIX 49+50=9949 + 50 = 99 (注意 99 写作 XCIX 而非 IC)