You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

罗马数字转换器所需key-value键值对的推导规则

罗马数字转换映射表的构建规则

要判断哪些条目需要加入映射表,核心是依据罗马数字的标准书写规则:

核心判断逻辑

  • 所有可以通过「大数值在前、小数值在后累加拼接」得到的组合都是冗余的,不需要单独加入映射表
    比如VI:6就属于冗余条目:6可以拆为5+1,对应基础字符V和I拼接即可得到正确写法,不需要额外定义映射。
  • 所有属于合法减记规则的组合都必须加入映射表,否则会生成不符合规范的罗马数字
    罗马数字仅允许6种合法的减记组合(小值写在大值左侧表示相减):IV(4)、IX(9)、XL(40)、XC(90)、CD(400)、CM(900)。以IV:4为例,如果没有这个映射,转换逻辑会把4转为四个I拼接的IIII,不符合标准写法,所以必须加入映射表。

映射表推导步骤

  1. 先加入7个基础罗马字符的映射:
    • I:1、V:5、X:10、L:50、C:100、D:500、M:1000
  2. 再加入全部6种合法减记组合的映射:
    • IV:4、IX:9、XL:40、XC:90、CD:400、CM:900
  3. 最后把所有映射条目按数值从大到小排序,就得到了你提到的标准转换映射表:
function converter(num) {
  var romanKeys = {M:1000,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}
  // 后续转换逻辑:遍历映射表,每次匹配最大可用值,拼接字符后扣除对应数值,直到num为0即可
}

内容的提问来源于stack exchange,提问作者untitiledunmastered

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:57:03