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、1000
private 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、1000
private 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;
}
}
相关推荐
罗马数字与阿拉伯数字互转(C++实现)
本文还有配套的精品资源,点击获取 简介:本项目旨在利用C++语言实现罗马数字与阿拉伯数字之间的转换,涵盖4000以内数字的转换。该项目涉及罗马数字系统、阿拉伯数字系统、C++基础知识、算法设计、文件操作、异常处理和代码调试与测试等知识点。通过完成本项目,学生将掌握罗马数字和阿拉伯数字转换的原理和实现方法,提升编程能力和算法设计思维。 1. 罗马数字系统 1.1 ...
js 数字转为罗马数字(互转换),I 、II 、 III 、IV、V
代码: //数字转为阿拉伯数字 export function intToRoman(num) { let map = { 1: 'I', 5: 'V', 10: 'X', 50: 'L', 100: 'C', 500: 'D', 1000: 'M' } // 标识位数 let digits = 1 // 结果 let result = ''
roman_numbers:十进制到罗马数字转换器实用程序
罗马数字 罗马数字转换应用 命令行参数 此命令采用1个必需参数和一个可选参数: in(int)转换的强制输入数字 max(int)可以转换的最大数目(默认为3000) 示例命令行: > roman_numbers -in 500 Roman number for 500 is D > roman_numbers -in 5000 -max 5000 Using upper limit 5000 instead of 3000 Roman number for 5000 is MMMMM 获取图书馆 库和命令将在运行时可用: go get -u github.com/hellgate75-verizon/roman_numbers 执照 该库已获得条款的许可,并在获得任何生产或商业使用之前得到作者的事先授权。禁止使用该库或任何扩展程序,因为使用不当可能造成损坏的风险很高。对于不正确或未
算法题:使用 JavaScript 将阿拉伯数字转为罗马数字
数组包含罗马数字符号及其对应的整数值,从大到小排列,以便于按顺序处理。
大象机器人myAGV移动机器人+mechArm六轴机械臂,开源复合机器人开发与实践!
我们这章节的内容是将协作性机械臂打破距离上的限制,跟移动机器人(myAGV)相连接,实现一个案例。
电磁仿真新手必看:如何用CST Studio Suite 2023完成第一个PCB辐射仿真?
本文详细解析了如何使用CST Studio Suite 2023进行PCB辐射仿真,适合电磁仿真新手快速上手。从工程准备、求解器配置到端口设置和后处理技巧,全面覆盖三维全波电磁场仿真软件的核心操作步骤,帮助工程师精准预测和解决PCB电磁辐射问题。
javascript罗马数字转换
阿拉伯数字转罗马数字
Xtract or Ucfyber的最条理的整理入门级教程
XTRACT可以对任意截面进行全过程截面分析。工程中常用来分析各种截面(如异形柱、组合截面等)的非线性特征点及承载力校核。 xtract主要思路也是根据各种材料本构关系,基于平截面假定,用fiber划分截面进行全过程非线性分析。......
罗马数字转换成阿拉伯数字 js
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <metahttp-eq...
Openclaw Onboarding向导全攻略——如何配置你的第一个AI助手
很多新手在成功运行 `openclaw --version` 后,面对黑底白字的终端就陷入了迷茫:“安装好了,然后呢?” 本篇我们就彻底解决这个问题,带你完整走完 `openclaw onboard` 交互式初始化配置向导的每一步,从“安装完成”到“真正能用”,只差这一个向导的距离。 本文为2026年3月最新版,适配OpenClaw v2026.2.x 稳定版,所有步骤均经过实测验证,可直接落地。
具身智能:原理、算法与系统 第3章 具身智能的感知-认知-行为框架
具身智能的PCB框架源于对生物智能系统的观察:动物通过感官接收环境信息(感知),基于内部模型进行预测和决策(认知),并通过身体执行动作改变环境(行为),而这一改变又通过感知反馈形成闭环。这一框架在两篇核心文献中得到了深入阐述:提出了系统的数学形式化和工程实现,则从认知科学角度强调了归纳偏置和双过程理论的重要性。
用js实现整数转罗马数字(贪心算法)
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II。27 写做 XXVII, 即为 XX + V + II。排列组合可得:罗马数字一共可以有13种情况,按从大到小排列,依次得出每个字符所出现的个数,在相加就可得到答案。
Jetson Orin Nano 平台适配IMX585 camera驱动调试记录
Jetson Orin Nano Devkit适配imx585 camera使用argus_camera捕获流,图片是黑色的用示波器来测量mipi信号,信号正常Jetpack版本: sensor参数: dts配置: 分析log: 如图: EBD有两行修改dts: 测试如下:log: 需要注意极性互换查看相应的原理图设置。可以使用设备树属性lane_polarity在任何lane上配置极性交换。例如, 尝试调整极性出现花屏 根据上述像素时钟配置说明调整为如下配置后,出图正常
Java经典题:罗马数字和阿拉伯数字的相互转换
古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念! 罗马数字的表示主要依赖以下几个基本符号: I 1 V 5 X 10 L 50 C 100
【实践】VECTOR AUTOSAR创建SWC读写CAN信号
在AUTOSAR开发中最必要的功能就是读写CAN信号,本文通过一步步说明,介绍如何开发SWC来读写CAN信号,可以说在AUTOSAR中实现读写CAN信号的实践过程,是一个非常基础且典型的练习。在本篇文章阅读之前,推荐阅读AUTOSAR RTE介绍,本篇文章介绍了RTE的比较全面的介绍了AUTOSAR RTE。理解了RTE之后,才能对SWC的设计更加清楚。话不多说,接着上一篇内容VECTOR DaVinci从0到1搭建工程,此篇文章我们介绍如何在DaVinci Developer中开发SWC访问CAN信号。为
基于simulink的多能源系统协同控制的复杂场景实例:氢燃料电池+锂电池混合动力电动汽车能量管理仿真
本文介绍了基于Simulink的氢燃料电池与锂电池混合动力电动汽车能量管理系统的建模与仿真方法。系统包含驾驶循环输入、氢燃料电池、锂电池、能量管理和电机驱动等模块,通过Simulink实现各模块的协同控制。文章详细说明了从模型创建到性能评估的完整流程,包括驾驶循环输入设置、燃料电池和锂电池子系统建模、能量管理策略设计等关键步骤。该仿真模型可验证不同工况下的系统响应和能量利用效率,为优化混合动力汽车的能量管理策略提供有效工具。通过引入更复杂的物理细节和环境因素,可进一步提升模型的实用性和准确性。
python——罗马数字和阿拉伯数字的互相转换以及单元测试
(1)roman.py # -*-coding:utf-8-*- """ this mode implements two functions, one implements the change from integer to roman numeral, another implements the opposite. """ """ functional requirements: (1)...
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
Java实现罗马数字转换为阿拉伯数字
Java实现罗马数字转换为阿拉伯数字个人原创,谢谢支持逻辑规则实现代码 个人原创,谢谢支持 代码个人编写,实测有效,,欢迎转载文本链接。 逻辑规则 给定一个罗马数字s,( I<=s<=MMMCMXCIX)(即1到3999),将罗马数字转换成整数。 如罗马数字I,II,III,IV,V分别代表数字1, 2, 3, 4, 5。 格式:第一行输入一个罗马数字,接下来输出对应的整数。 提示: ...
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
罗马数字转换python_Python简单实现阿拉伯数字和罗马数字的互相转换
这篇文章主要介绍了Python简单实现阿拉伯数字和罗马数字的互相转换,涉及Python针对字符串与列表的遍历、运算等相关操作技巧,有需要的朋友可以参考下本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:前面一篇介绍了《Java实现的求解经典罗马数字和阿拉伯数字相互转换问题》,这里来看看Python的实现方法。题目很简单,如果之前也做过这种题目的话,相...
刷题28-罗马数字和阿拉伯数字转换
1 阿拉伯数字转罗马数字 // 数字转罗马数字 public static String intToRoman(int num) { int[] values = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 }; String[] strs = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" }; StringBuilder sb = ne
使用JavaScript | Python | Java | C++解决从罗马数字转换到阿拉伯数字
从罗马数字转换到阿拉伯数字问题描述:例子:限制条件:解决思路:执行代码:JavaScript代码:Python代码:Java代码:C++代码: 问题描述: 罗马数字是由七个不同的符号表示:I,V,X,L,C,D和M。 Symbol(标记) Value (值) I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如,2用罗马数字II书写,只是将两个I加在一起。12作为写XII,这是用X + II。数字27写为XXVII,即XX + V + I
罗马数字转换python_Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下:前面一篇介绍了《Java实现的求解经典罗马数字和阿拉伯数字相互转换问题》,这里来看看Python的实现方法。题目很简单,如果之前也做过这种题目的话,相信对于什么是罗马数字就不会很陌生了,罗马数字是很古老的计数方法,现在的一些地方还有见到它的使用,下面简单贴两张维基百科的图片简单回顾一下罗马数字:今天简...
java罗马数字_Java实现的求解经典罗马数字和阿拉伯数字相互转换问题示例
本文实例讲述了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题。分享给大家供大家参考,具体如下:古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念!罗马数字的表示主要依赖以下几个基本符号:I 1V 5X...
将阿拉伯数字转换为罗马数字
昨天,写了一个将罗马数字转换成阿拉伯数字的过程,今天来写一个反过程吧,将阿拉伯数字转化成罗马字符串实现原理很简单,一看就能明白的,将数字先拆分成一个一个的小于10的数字,然后在各自转换则可。<!--.textBackGround {background-color: #F0F5FD;}--> PythonCode: def numToRoman
罗马数字转换阿拉伯数字(Java版,考虑较为全面)
一. 前言 朋友的作业,本想在网上找个现成的改改就行啦。可是一番google、baidu之后,找到的要么不是Java版本的,要么就是考虑的不够全面。遂,笔者自己写了个,如有考虑不全面的地方,望大家能够指出。下面进入正题。 二. 罗马数字规则 罗马数字无表示零的数。 表示数的基本方法:除I、X、C位于大数后作为加数,位于大数前作为减数外,一般把若
罗马数字与阿拉伯数字相互转换
罗马数字规则简明 1. 罗马单个数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000) 2.一个罗马数字重复几次,就表示这个数的几倍。但同一数码不能出现三次以上。 3.遵循右加左减的规则。 左减的数字有限制,仅限于I、X、C。比如45不可以写成VL,只能是XLV 但是,左减时不可跨越一个位数。比如,99不可以用IC(100 - 1)表示
1100



被折叠的 条评论
为什么被折叠?



