W3Cschool中级脚本算法(3.数字转罗马数字)

本文介绍了一个将阿拉伯数字转换为罗马数字的方法。通过定义数字与罗马符号的映射关系,使用循环遍历的方式实现转换,最终返回大写的罗马数字字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字转罗马数字


问题:

将给定的数字转换成罗马数字。

所有返回的 罗马数字 都应该是大写形式。

如果你被难住了,记得使用 Read-Search-Ask尝试与他人交流编程思路、但编写你自己的代码。

 


要求:

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(1023) 应该返回 "MXXIII"。

convert(2014) 应该返回 "MMXIV"。

convert(3999) 应该返回 "MMMCMXCIX"。

 


问题答案:

function convert(num) {
 var nums = [1000,900,500,400,100,90,50,40,10,9,5,4,1];
  var romans =["m","cm","d","cd","c","xc","l","xl","x","ix","v","iv","i"];
  var str = '';
  nums.forEach(function(item,index,array){
    while(num >= item){
      str += romans[index];
      num -= item;
    }
  });

 return str.toUpperCase();
}

convert(36);

 


题目链接:

https://www.w3cschool.cn/codecamp/roman-numeral-converter.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值