博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Integer to Roman 整数转罗马数字
阅读量:4109 次
发布时间:2019-05-25

本文共 1240 字,大约阅读时间需要 4 分钟。

题目:

4000以内的整数转罗马数字

解答:

先将1-9  10 - 90  100 - 900 1000 - 4000 的整数对应的罗马数字存成map

然后逐次取千位  百位  十位  个位 对应的数值 进行匹配得出结果。

代码:

class Solution {  public:	  string intToRoman(int num) {		  map
ir; ir.insert(pair
(1, "I")); ir.insert(pair
(2, "II")); ir.insert(pair
(3, "III")); ir.insert(pair
(4, "IV")); ir.insert(pair
(5, "V")); ir.insert(pair
(6, "VI")); ir.insert(pair
(7, "VII")); ir.insert(pair
(8, "VIII")); ir.insert(pair
(9, "IX")); ir.insert(pair
(10, "X")); ir.insert(pair
(20, "XX")); ir.insert(pair
(30, "XXX")); ir.insert(pair
(40, "XL")); ir.insert(pair
(50, "L")); ir.insert(pair
(60, "LX")); ir.insert(pair
(70, "LXX")); ir.insert(pair
(80, "LXXX")); ir.insert(pair
(90, "XC")); ir.insert(pair
(100, "C")); ir.insert(pair
(200, "CC")); ir.insert(pair
(300, "CCC")); ir.insert(pair
(400, "CD")); ir.insert(pair
(500, "D")); ir.insert(pair
(600, "DC")); ir.insert(pair
(700, "DCC")); ir.insert(pair
(800, "DCCC")); ir.insert(pair
(900, "CM")); ir.insert(pair
(1000, "M")); ir.insert(pair
(2000, "MM")); ir.insert(pair
(3000, "MMM")); int x = 1000; int t = 0; string s = ""; while (num) { t = num / x * x; s = s + ir[t]; num = num - t; x = x / 10; } return s; } };

转载地址:http://rytsi.baihongyu.com/

你可能感兴趣的文章
redis 安装配置
查看>>
封装GetQueryString()方法来获取URL的value值
查看>>
HTTP请求中的form data和request payload的区别
查看>>
线程池工作队列饱和策略
查看>>
mysql中使用聚合函数结果集为空,仍显示size为1,所有元素为Null问题
查看>>
设计模式心法之单一职责原
查看>>
Spring思想理解
查看>>
web应用中浏览器与服务端的编码和解码
查看>>
Http协议中的CharacterEncoding、Content-Encoding和Transfer-Encoding
查看>>
ftp传输图片损坏原因
查看>>
vue 使用localstorage实现面包屑
查看>>
vue 路由跳转到本页面,ts 监听路由变化
查看>>
[Unity工具]python导表工具03:json转lua
查看>>
[Unity优化]包体积01:查找资源依赖
查看>>
【JavaScript】当我们尝试用JavaScipt测网速
查看>>
【JavaScript】EventEmitter的前端实现
查看>>
【Node.js】 bodyparser实现原理解析
查看>>
【CSS】CSS特效集锦,视觉魔法的碰撞与融合(一)
查看>>
【CSS】Houdini, CSS的成人礼
查看>>
【JavaScript】吃饱了撑的系列之JavaScript模拟多线程并发
查看>>