首先我们来看一下罗马数字的表数方法:
1.罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)
2.相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;
3.小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;
4.正常使用时、连写的数字重复不得超过三次;
5.在一个数的上面画一条横线、表示这个数扩大 1000 倍。
注意以下几个规则:
1.基本数字 Ⅰ、X 、C 中的任何一个、自身连用构成数目、或者放在大数的右边连用构成数目、都不能超过三个;放在大数的左边只能用一个;
2.不能把基本数字 V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目;放在大数的右边采用相加的方式构成数目、只能使用一个;
3.I只能用在V和X左边;X只能用在L和C左边;C只能用在D和M左边。
首先我们可以想一想这样的计数体系的特点是什么。因为不能输出上划线所以讨论过大的数没有意义,那么不用上划线所能表示的最大的数是多少呢?没错你应该已经想到了MMMCMXCIX——3999。这种计数体系的倍数关系并不明显,而加数关系更加明显。比如369,先表示300——CCC,然后60——LX,然后9——IX。连起来就是CCCLXIX。……
public static String ArabToRoman(int Arab){
String Roman = "";
String[][] list={
{
"","I","II","III","IV","V","VI","VII","VIII","IX"},
{
"","X","XX","XXX","XL","L","LX","LXX",