将给定的数字转换成罗马数字。所有返回的 罗马数字 都应该是大写形式。

convert(2) 应该返回 "II"。convert(3) 应该返回 "III"。convert(4) 应该返回 "IV"。convert(5) 应该返回 "V"。convert(9) 应该返回 "IX"。convert(12) 应该返回 "XII"。convert(16) 应该返回 "XVI"。convert(29) 应该返回 "XXIX"。convert(44) 应该返回 "XLIV"。convert(45) 应该返回 "XLV"。convert(68) 应该返回 "LXVIII"。
convert(83) 应该返回 "LXXXIII"。convert(97) 应该返回 "XCVII"。convert(99) 应该返回 "XCIX"。convert(500) 应该返回 "D"。convert(501) 应该返回 "DI"。convert(649) 应该返回 "DCXLIX"。convert(798) 应该返回 "DCCXCVIII"。convert(891) 应该返回 "DCCCXCI"。convert(1000) 应该返回 "M"。convert(1004) 应该返回 "MIV"。convert(1006) 应该返回 "MVI"。convert(3999) 应该返回 "MMMCMXCIX"。

罗马数字对应1 I  5 V  10 X  50 L  100  C   500 D   1000 M其他900就是CM,1100就是MC其他类推。

提示给定是splice(),indexOf()和join()有想过用switch语句,来分成很多个分支,对应的值进入相应的分支,可以用除法加取正来获取每位对应的值,付给相应的分支,最后合成。但是写起来太大,执行起来反而更快。或者用forEach来循环,将数字和罗马数字构成两个一一对应的数组,从高位依次减,再获取index获得相应的罗马数字。

function convert(num) {
         var numbers=[1000,900,500,400,100,90,50,40,10,9,5,4,1];//用numbers中的值依次和item比较,大于item则返回对应的index返回Romans中对应字母加入字符串str中,num减去item
         var romans=['M','CM','D','DC','C','XC','L','XL','X','IX','V','IV','I'];
         var str="";
         numbers.forEach(function(item,index,array){
                while(num>=item){
                         str+=romans[index];
                         num-=item;
                 }
         });

return str;
}

转载于:https://www.cnblogs.com/skyyo/p/7614368.html

FreeCodeCamp之数字转罗马数字相关推荐

  1. JS 实现数字转罗马数字

    JS 实现数字转罗马数字 JS 实现数字转罗马数字,最近楼主在写w3c的算法挑战,现在到这个转换实现这里了,所以想着写个博客,看看自己的实现方法和大家的有什么出入的,还望大家多多指教,附上源代码 fu ...

  2. php数字转换题目,PHP将整数数字转换为罗马数字实例分享

    方法一:自定义函数 我们可以自己手动编写一个函数来实现此功能,这个函数可以将数字作为第一个参数,将其转换为罗马并返回. 注:大多数算法只能在1-4999的范围内工作,如果使用特大数,脚本将失败. 实现 ...

  3. Java 描述,数字转换为罗马数字。

    问题描述: 罗马数字1-9:1-Ⅰ.2-Ⅱ.3-Ⅲ.4-Ⅳ.5-Ⅴ.6-Ⅵ.7-Ⅶ.8-Ⅷ.9-Ⅸ 代码如下: import java.util.Scanner;public class 数字转换为罗 ...

  4. 数字转罗马数字_理解罗马数字

    数字转罗马数字 In today's world, we take for granted the numerical system that we use on a daily basis. The ...

  5. 数字和罗马数字的的转换

    package com.hd.web; /**  * 数字和罗马数字的的转换  * @author yang  *  */ public class yang { public static void ...

  6. 数字与罗马数字之间转换

    较难练习数字与罗马数字之间的转换 package test.dyihe3;import java.util.Scanner; import java.util.StringJoiner;public ...

  7. java数字转罗马数字

    需求:键盘录入一个字符串,长度小于9,只能是数字 注:罗马数字没有0,如果键盘录入的数字包含0,可以变为"" import java.util.Scanner;public cla ...

  8. 汉语数字或罗马数字转化为阿拉伯数字:例如:一百二十三为123、III为3

    汉语数字转化为阿拉伯数字 方式一:得到结果集然后进行遍历 运行结果展示 方式二:结果集一直变化中 运行结果展示 罗马数字转化为阿拉伯数字 运行结果展示 方式一:得到结果集然后进行遍历 public s ...

  9. Roman Numeral Converter--将给定的数字转换为罗马数字

    算法实现功能是:将给定的数字转换成罗马数字,所有返回的 罗马数字 都应该是大写形式. 参考的资源有:Roman Numerals ; Array.splice() ; Array.indexOf()  ...

最新文章

  1. C#创建一个Windows Service
  2. FIlterInputStream和FilterOutputStream
  3. ora-01740: 标识符中缺失双引号_sql语句中单引号的使用
  4. C#调用 Halcon引擎执行代码
  5. matlab simulink笔记04——switch模块
  6. python PIL图像处理
  7. 10个用来处理键盘事件的JQuery插件和JS类库
  8. go中的goroutine协程
  9. BitPlots包简介
  10. SpringBoot2.0整合jsp
  11. Hive建表语句Location与HDFS创建目录
  12. 微信小程序实例教程(一)
  13. 黑马程序员-学习日志-文件的合并
  14. 6.5一些keil编程错误总结
  15. 暗态图像处理论文:A Bio-Inspired Multi-Exposure Fusion Framework for Low-light Image Enhancement
  16. ad19怎么手动布线_AD19如何使用强大的自动布线功能
  17. 【Go基础】1 - Go Go Go
  18. Be An Effective Engineer
  19. C语言练习之温度转换
  20. 报错 SyntaxError: Unexpected token R in JSON at position 0 at JSON.parse (<anonymous>)的解决方法

热门文章

  1. 易维帮助台:让IT运维服务与企业业务发展需求高度融合
  2. Oracle 数据库的连接
  3. struts 2 时间控件
  4. php imagick
  5. make clean与make distclean的区别-转
  6. 蓝桥杯 ALGO-37 算法训练 Hankson的趣味题
  7. 蓝桥杯 ADV-179 算法提高 解二元一次方程组
  8. 蓝桥杯ADV-172 算法提高 身份证排序
  9. weblogic 10 及以后版本需要单独生成Weblogic10.3客户端jar文件
  10. PERL 使用IO::Socket::INET模块实现socket编程