oracle 罗马数字处理,阿拉伯数字转罗马数字(Roman Numeral Converter)
如上图所示,罗马数字由7个基本字符组成['I','V','X','L','C','D','M'],阿拉伯数字num转换时需将数字经过求余运算,对千位以上、百位、十位和个位分别进行处理。
一、千位以上
num/1000的结果为n,结果字符串result需重复n次字符‘M’;可抽象如下函数,重复给定字符char, n次.
function repeatC(char,count){
var result="";
for(var i=0;i
result+=char;
}
return result;
}
二、百位、十位和个位的处理
百位、十位、位的处理类似,以个位处理为例:
当1<=n<=3时,result字符串为重复特定字符 'I' n次;
当n==4时,4=5-1 result字符串为"IV";
当5<=n<=8时,result字符串为'V'+repeatC('I',n-5);
当n==9时,9=10-1,result字符串为"XI";
由此可看出个位数可由'I','V','X'三个字符组合而成。可抽象如下函数:
function generBase(num,arr){
var result="";
if(num>=1&&num<=3){
result=repeatC(arr[0],num);
}
if(num===4){
result=arr[0]+''+arr[1];
}
if(num>=5&&num<=8){
result=arr[1]+''+repeatC(arr[0],num-5);
}
if(num===9){
result=arr[0]+""+arr[2];
}
return result;
}
三、转换为罗马数字
转换函数需要对任意输入的数字n做出判断,通过不断的取余分别对不同的数字位做出相应的处理,转换函数如下:
function convert(num) {
var result="";
if(num>=1000){
result=repeatC('M',Math.floor(num/1000));
num %= 1000;
}
if(num>=100){
result+=generBase(Math.floor(num/100),['C','D','M']);
num %= 100;
}
if(num>=10){
result+=generBase(Math.floor(num/10),['X','L','C']);
num %= 10;
}
if(num>=1){
result+=generBase(Math.floor(num),['I','V','X']);
}
return result;
}
示例:convert(2953);
运行结果为:MMCMLIII;
oracle 罗马数字处理,阿拉伯数字转罗马数字(Roman Numeral Converter)相关推荐
- 整数转换成罗马数字,Roman Numeral Converter
/* 思路: 1.定义好符合罗马数字规则的数字及罗马字符 ,然后循环, 若参数的值符合判定条件,则减去当前数,并赋值给结果集,字符串则加上对应的罗马字符,然后继续循环一一对应循环判断赋值. */ fu ...
- JavaScript基础算法——Roman Numeral Converter(阿拉伯数转换罗马数字)
要求: 将给定的数字转换成罗马数字. 所有返回的 罗马数字 都应该是大写形式. 样本: convert(2) 应该返回 "II". convert(3) 应该返回 "II ...
- Roman Numeral Converter
题目 将给定的数字转换成罗马数字 代码 function convert(num) {var arr= [["","I","II",&quo ...
- Given a roman numeral, convert it to an integer.
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...
- 阿拉伯数字转为罗马数字
:: Arab2Roman 阿拉伯数字转为罗马数字 @echo off setlocal EnableDelayedExpansion :test if "%~0"==" ...
- python罗马数字转换阿拉伯数字_Python将阿拉伯数字转换为罗马数字的方法
本文实例讲述了Python将阿拉伯数字转换为罗马数字的方法.分享给大家供大家参考.具体实现方法如下: def numToRomanNum(Num): """digital ...
- 罗马数字转换成数字java_C趣味编程百例(31)将阿拉伯数字转换为罗马数字
95.将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字.阿拉伯数字与罗马数字的对应关系如下: *问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换 ...
- 送给大家一个把阿拉伯数字与罗马数字互换的代码 -.- 仅支持4000以下的转化
基本字符 I V X L C D M 相应的阿拉伯数字表示为 1 5 10 50 100 500 1000 1>相同的数字连写.所表示的数等于这些数字相加得到的数.如:Ⅲ=3: 2>小的数 ...
- 将阿拉伯数字转换为罗马数字
将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字.阿拉伯数字与罗马数字的对应关系如下: *问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换实际上 ...
- 将阿拉伯数字变成罗马数字 案例
键盘录入一个字符串, 要求1:长度为小于等于9 要求2:只能是数字,将内容变成罗马数字 下面是阿拉伯数字跟罗马数字的对比关系: Ⅰ-1.Ⅱ-2.Ⅲ-3.Ⅳ-4.Ⅴ-5.Ⅵ-6.Ⅶ-7.Ⅷ-8.Ⅸ-9 ...
最新文章
- David与Vincent的博弈游戏[树型DP]
- 乐迪机器人正确操作_什么是机器人示教器?
- Mysql小练习(1)
- mysql降序后去重_Mysql 数据记录去重后按字段排序
- pytorch单机多卡的正确打开方式 以及可能会遇到的问题和相应的解决方法
- 项目总结(采用领域驱动开发方式)
- zc702运行linux,笔记:ZC702之linux运行
- 哗啦啦用Java_哗啦啦
- cannot instantiate the type
- android如何展示富文本_Android中如何在textView实现富文本
- cad2010多个文件并排显示_CAD2010中如何将多个文档并排显示在一个窗口里?
- neural-style风格迁移模型实战
- 计算机excel还原,3种方法找回电脑上已删除的Excel文档
- android wifi 5g,android 判断 wifi 是否是 5G
- eas bos客户端获取组织,人员,用户的方法
- AnimationEvent事件问题之详细分解
- 在linux系统里面进行rar文件的解锁
- 关于PCB行业三巨头的一点个人评价
- 如何保证测试用例的覆盖率
- Android 性能优化必知必会
热门文章
- PS照片处理尺寸参考表
- 和Keyle一起学ShaderForge – Create Base Shader
- 快速制作index.html,介绍一个h5快速制作平台鲁班H5
- 最新抖音视频无水印解析接口-突破频率限制
- 世界第4疯狂的科学家,在103岁生日那天去世了
- 网络共享计算机设置方法,如何设置网络共享(局域网共享如何设置)
- Android Xml解析
- 个人学习计划(计算机专业),大学生个人学习计划范文
- bou计算机术语,2012年计算机一级考试模拟试题及参考答案(27)
- 计算机键盘在线识别,电脑的外接键盘无法识别怎么办?