尊贵书库

字:
关灯 护眼
尊贵书库 > 编程之战 > 第三十二章 罗马数字

第三十二章 罗马数字

第三十二章 罗马数字 (第1/1页)

位于西亚的美索不达米亚平原,在幼发拉底河和底格里斯河之间的宽广陆地上,一支来自欧洲罗马的商队正在缓缓前行。
  
  这些辎重中,有很多西欧宗教的书籍,档案,他们此行的目的地是巴格达城,去向来自世界各地的异教徒宣传上帝的福音。
  
  杨成身穿罗马主教服饰,侧卧在摇摇晃晃的马车中,他实在是太累了,一路上走过来都是昏昏沉沉的。他此行的担子非常重,罗马教皇要求他将西方的文化传播过来。
  
  而这些任务中,首当其冲的便是罗马数字和阿拉伯数字的转换,毕竟这是做生意的基础。
  
  “作为一名Chinese,对罗马数字真是太不熟悉了”,杨成一屁股坐起来,感觉有些头疼。
  
  罗马数字中有一些很古怪的特性。
  
  首先,连写的数字重复不得超过三次,比方说要表示4,就不能是IIII,而应该是IV。
  
  然后呢,如果小的数字,它在大的数字的左边,那么它所表示的数等于大数减小数得到的数,比如:Ⅳ=4;Ⅸ=9。
  
  这两个奇怪的特性就让它比阿拉伯数字理解起来更费力。
  
  比方说“MDCLXVI“,它用阿拉伯数字表示是1666,这是怎么得到的呢?
  
  “M”是1000,”D”是500,”C”代表100,”L”代表50,”X”代表10,”V”代表5,”I”代表1,它们加起来就是1666。
  
  所以转换的第一步,就是在常用的罗马数字和阿拉伯数字之间建立映射,整理一下,可以得到如下的映射表:
  
  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
  
  有了这个对象映射关系,就可以在解析的过程中及时地作匹配,也很容易写出代码来。
  
  值得注意的一点,这个转化只能在几千的范围内进行,超出范围算法就失败了。
  
  不过,应付这种小规模的贸易,肯定是绰绰有余的。
  
  马车内,杨成专心致志地码着代码,无心关注两河流域肆虐的风沙。
  
  直到耳畔出现“叮”的系统音,他才抬起头,擦了擦汗水。
  
  那西亚世界的中心巴格达城很快出现在了天际,带着浓浓的历史气息。
  
  “叮!恭喜您完成了罗马数字转换的相关任务!”
  
  “当前积分67分,击败了全球29%的玩家,请您再接再厉!”
『加入书签,方便阅读』
热门推荐
顶级神豪 史上最强炼气期 全职法师 大小姐她总是不求上进 许你万丈光芒好 麻衣神婿 绝代神主 我不想继承万亿家产 寒门崛起 机武风暴