罗马数字转换阿拉伯数字(Java版,考虑较为全面)


分类:
小程序


1628人阅读
评论(3)
收藏
举报

一. 前言

朋友的作业,本想在网上找个现成的改改就行啦。可是一番google、baidu之后,找到的要么不是Java版本的,要么就是考虑的不够全面。遂,笔者自己写了个,如有考虑不全面的地方,望大家能够指出。下面进入正题。

二. 罗马数字规则

罗马数字无表示零的数。

表示数的基本方法:除I、X、C位于大数后作为加数,位于大数前作为减数外,一般把若干罗马基本数字写在一起,它表示的数字等于各个数字的和。

1. 重写: III(3) XX(20) CC(200)

2. 左减: IX(9) XL(40) CD(400)

3. 右加: VII(7) XI(11) LX(60)

4. 综合前三种方法:XLV(L-X+V,45) LXII(L+X+I+I,62)

若在数字上方加一横线,表示增大1000倍。(此规则由于如果输入,故程序中未实现)

注意点:

1. I、X、C在大数右边(即相加时)不能连续超过三个,在大数左边(即相减时)只能用一个。

2. V、L、D不能用于大数左边(相减),只能用于大数右边(相加),且只使用一个。

3.V、X左边小数只用I;L、C左边小数只用X;D、M左边小数只用C。

发表回复