博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现罗马数字转整数
阅读量:4180 次
发布时间:2019-05-26

本文共 1419 字,大约阅读时间需要 4 分钟。

import java.util.HashMap;import java.util.Map;/** * 罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符                            数值I             1V             5X             10L             50C             100D             500M             1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:    I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。    X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。     C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。示例 1:输入: "III"输出: 3示例 2:输入: "IV"输出: 4示例 3:输入: "IX"输出: 9示例 4:输入: "LVIII"输出: 58解释: C = 100, L = 50, XXX = 30, III = 3.示例 5:输入: "MCMXCIV"输出: 1994解释: M = 1000, CM = 900, XC = 90, IV = 4. */public class _罗马数字转整数 {	public static void main(String[] args) {//		String str = "VIII";		String str = "MCMXCIV";		Map
map=new HashMap<>(); //m1(str); } private static void m1(String str) { Map
map = new HashMap<>(); map.put('I', 1); map.put('V', 5); map.put('X', 10); map.put('L', 50); map.put('C', 100); map.put('D', 500); map.put('M', 1000); int res = 0; int value = 0; int last = 0; for(int i = str.length() - 1;i >= 0;i--){ value = map.get(str.charAt(i)); if(last <= value){ res += value; last = value; }else{ res -= value; last = value; } } System.out.println(res); }}

 

转载地址:http://crqai.baihongyu.com/

你可能感兴趣的文章
JavaBean对象转换EntityUtils工具类
查看>>
Maven常用命令
查看>>
SpringBoot | 运行报错,无法加载oracle连接驱动
查看>>
为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作
查看>>
AWS EC2如何从普通用户切换为root用户
查看>>
click方法不生效的
查看>>
mysql排行榜并列与不并列
查看>>
SpringBoot | Mybatis申明为Mapper文件
查看>>
JPA主键生成策略
查看>>
byte数组和InputStream的相互转换
查看>>
InputStream,InputStreamReader和Reader之间的区别与关系
查看>>
Java中System.arraycopy方法的使用
查看>>
tk.mybatis的使用记录
查看>>
遍历获取目录下的所有文件
查看>>
从指定服务器路径下载文件
查看>>
EasyExcel读取和写入java model数据
查看>>
《C编译原理》共享库的动态加载和静态加载
查看>>
《Android系统学习》第二章:如何制作OTA U盘升级包
查看>>
《Android系统学习》第五章:编译Android的JDK环境
查看>>
《C++特性》之引用类型
查看>>