罗马数字转化阿拉伯数字
罗马数字包含以下七种字符:I
, V
, X
, L
,C
,D
和 M
。
字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 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.
解题思路:
把罗马数字的几个英文放进一个map里,对应的值为
a['I'] = 1;
a['V'] = 5;
a['X'] = 10;
a['C'] = 100;
a['M'] = 1000;
a['L'] = 50;
a['D'] = 500;
遍历整个字符串,设置两个相邻指针,如果前面>后面或者是最后一个,就吧对应的数值加起来,否则减去对应的数值。
代码:
import java.util.Scanner;public class 罗马数字转换 {public static void main(String[] args) {// TODO 自动生成的方法存根Scanner input = new Scanner(System.in);String s = input.next();int[] a = new int[256];a['I'] = 1; a['V'] = 5; a['X'] = 10; a['C'] = 100; a['M'] = 1000; a['L'] = 50; a['D'] = 500; int val = 0;for (int i = 0; i < s.length(); i++) {//如果是最后一个字符,或者前一个大于后面的,就加,否则减if (i == s.length() - 1 || a[s.charAt(i+1)] <= a[s.charAt(i)]) {val += a[s.charAt(i)];}else {val -= a[s.charAt(i)];}}System.out.println(val);}}
罗马数字转化阿拉伯数字相关推荐
- 汉语数字或罗马数字转化为阿拉伯数字:例如:一百二十三为123、III为3
汉语数字转化为阿拉伯数字 方式一:得到结果集然后进行遍历 运行结果展示 方式二:结果集一直变化中 运行结果展示 罗马数字转化为阿拉伯数字 运行结果展示 方式一:得到结果集然后进行遍历 public s ...
- 罗马数字与阿拉伯数字的相互转换
最近遇到一道非常有趣的题目,题目大意如下:有一个富翁在银河系里做生意,而银河系使用的是罗马数字,所以他需要一个精明能干的助手,帮助他完成罗马数字与阿拉伯数字的相互转换,题目在这个背景下衍生出交易场 ...
- 罗马数字转换阿拉伯数字(Java版,考虑较为全面)
一. 前言 朋友的作业,本想在网上找个现成的改改就行啦.可是一番google.baidu之后,找到的要么不是Java版本的,要么就是考虑的不够全面.遂,笔者自己写了个,如有考虑不全面的地方,望大家能够 ...
- 罗马数字和阿拉伯数字互转(源码)
罗马数字和阿拉伯数字互转(源码) 将下面源码全部复制下来直接粘贴到html页面试一下,代码还有许多需要改进的地方,请各位大神多多指点,谢谢! <!DOCTYPE html> <htm ...
- python罗马数字转换阿拉伯数字_20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》...
20202427-张启辰<Python3初学:罗马数字转阿拉伯数字> 1.规则 罗马数字是古罗马使用的一种记数系统,在阿拉伯数字传入之前使用较为普遍,目前大家可能在钟表.日历.文章的排序 ...
- java输出罗马数字_Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例...
本文实例讲述了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题.分享给大家供大家参考,具体如下: 古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来 ...
- 罗马数字转阿拉伯数字两种实现
记数方法 古罗马数字基本符号 基本字符 I V X L C D M 相应的阿拉伯数字表示为 1 5 10 50 100 500 1000 相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ=3 ...
- 罗马数字与阿拉伯数字互转
来源于 LeetCode Roman to Integer 描述: Given a roman numeral, convert it to an integer. Input is guarante ...
- python判断输入的是否为数字_python怎么判断是否为数字 将罗马数字转为阿拉伯数字,用python解...
将阿拉伯数字转为罗马数字,用python解 class Solution(object): def intToRoman(self, num): """ :type nu ...
- 经典题:罗马数字和阿拉伯数字的相互转换
package Linkedin;public class RomeToArabic {public static void main(String[] args) {String s = " ...
最新文章
- shell快速将同一名称的不同类型文件自动划分到一个文件中
- 十大笔记本品牌型号命名规则【联想】
- vmware tools 的安装(Read-only file system 的解决)
- 熊猫merge()–合并两个DataFrame对象
- Jmockit单元测试MockUp调用原始方法
- myBatis --(3)数据的增删改查
- WebStorage篇
- json字符串转json对象
- PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】
- Borůvka算法与异或生成树
- MTK 6737 Flash配置
- XRecycleView (Scrapped or attached views may not be recycled)
- Ubuntu 20.04安装CUDA失败导致系统黑屏消息nvidia 0000:01:00.0: can‘t change power state from D3cold to D0 的解决方法
- coco数据集大小分类_COCO数据集使用
- Python利用马青公式计算圆周率Π并写入文件
- 2020—开发记录以及知识总结,持续更新
- 2021考生如何做考博英语复习规划?
- 2016阿里安全峰会(附峰会议题一览表)
- DocuWare 文件管理与工作流程自动化案例研究——DocuWare 工作流程功能使在家工作的员工能够保持沟通和高效工作,支持混合环境
- android手机舆情分析,基于Android移动互联网舆情管理关键技术研究