经典题:罗马数字和阿拉伯数字的相互转换
package Linkedin;public class RomeToArabic {public static void main(String[] args) {String s = "IV";System.out.println(r2a(s));System.out.println(a2r(34));}//罗马数字转阿拉伯数字:// 从前往后遍历罗马数字,如果某个数比前一个数小,则把该数加入到结果中;// 反之,则在结果中两次减去前一个数并加上当前这个数;// I、V、X、 L、 C、 D、 M// 1.5、10、50、100、500、1000private static int r2a(String in){int graph[] = new int[400];graph['I'] = 1;graph['V']=5;graph['X']=10;graph['L']=50;graph['C']=100;graph['D']=500;graph['M']=1000;char[] num = in.toCharArray();// 遍历这个数,用sum来总计和int sum = graph[num[0]];for(int i=0; i<num.length-1; i++){// 如果,i比i+1大的话,直接相加if(graph[num[i]] >= graph[num[i+1]]){sum += graph[num[i+1]];}// 如果i比i+1小的话,则将总和sum减去i这个地方数的两倍,同时加上i+1// 就相当于后边的数比左边的数大,则用右边的数减左边的数else{sum = sum + graph[num[i+1]] - 2*graph[num[i]];}}return sum;}// 阿拉伯数字转罗马数字:// 把所有小数字在前的组合也作为基本数字,再做一个对应的数值表就可以解决问题了。// I、V、X、 L、 C、 D、 M// 1.5、10、50、100、500、1000private static String a2r(int aNumber){if(aNumber < 1 || aNumber > 3999){return "-1";}int[] aArray = {1000,900,500,400,100,90,50,40,10,9,5,4,1};String[] rArray = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};String rNumber = "";for(int i=0; i<aArray.length; i++){while(aNumber >= aArray[i]){rNumber += rArray[i];aNumber -= aArray[i];}}return rNumber;}}
经典题:罗马数字和阿拉伯数字的相互转换相关推荐
- 罗马数字与阿拉伯数字的相互转换
最近遇到一道非常有趣的题目,题目大意如下:有一个富翁在银河系里做生意,而银河系使用的是罗马数字,所以他需要一个精明能干的助手,帮助他完成罗马数字与阿拉伯数字的相互转换,题目在这个背景下衍生出交易场 ...
- java输出罗马数字_Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例...
本文实例讲述了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题.分享给大家供大家参考,具体如下: 古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十三章:面向对象程数据库系统
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第八章:数据库并发控制
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第七章:数据库恢复技术
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
最新文章
- django model 条件过滤 queryset.filter(**condtions) 用法
- Java Garbage Collection Basics--转载
- JQuery 绑定select标签的onchange事件
- Android App性能自动化评测方法
- 陈睿:B站是中国最适合实现元宇宙概念的公司之一
- CentOS 7下安装GUI图形界面
- 【UVA10652】Board Wrapping(凸包+坐标旋转+多边形面积)
- 绿联网卡转接mac设置_苹果中文系统USB外置网卡驱动安装方法
- 基于讯飞语音API应用开发之——离线词典构建
- 文明与征服阵容搭配,文明与征服阵容推荐
- 缓存文件可以放在哪里?它们各自的特点是什么?
- 正则表达式之小工具系列
- Linux 下如何添加一个普通用户,并给予用户root权限
- @Transactional 详解 示例
- MathType 6.9 安装提示关闭软件再试一次
- Git常用操作速查,没有人比我更简单!!
- 智能家居app开发十大核心功能
- 高等数学 极限与连续 知识技巧思维导图 [21考研上岸之旅]
- ubuntu下ecm驱动_Linux 下使用USB 网络
- Quicker:Windows 办公效率神器 | 初学者必备(一)