罗马数字和阿拉伯数字互化 java实现

首先我们来看一下罗马数字的表数方法:
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",
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值