当前位置: 首页 > news >正文

Leetcode. 12 整数转罗马数字

罗马数字包含以下七种字符: I, V, X, LCD 和 M

字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

  • I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
  • X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
  • C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

给你一个整数,将其转为罗马数字。

示例 1:

输入: num = 3
输出: "III"

示例 2:

输入: num = 4
输出: "IV"

示例 3:

输入: num = 9
输出: "IX"

示例 4:

输入: num = 58
输出: "LVIII"
解释: L = 50, V = 5, III = 3.

示例 5:

输入: num = 1994
输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.

提示:

  • 1 <= num <= 3999

把所有形如IV和IX等的形式全部表示出来(4、9、40、90、400、900)

class Solution {
public:string intToRoman(int num) {int values[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};string reps[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};string res;for(int i=0; i<13; i++){while(num>=values[i]){num -= values[i];res += reps[i];}}return res;}
};

注:题目来源于leecode,本人leecode题解链接:. - 力扣(LeetCode)

题目链接:. - 力扣(LeetCode)

http://www.lryc.cn/news/340294.html

相关文章:

  • 【uniapp】request请求函数封装,token、成功、失败等
  • 0基础如何入门编程?
  • Go 单元测试基本介绍
  • uniapp 上传视频到阿里云之后回显视频获取视频封面
  • 使用undetected-chromedriver遇到的问题及解决方法,以及它使用SOCKS代理的问题
  • Hadoop入门学习路线
  • Python中的设计模式与最佳实践【第166篇—设计模式】
  • Python赋能AI数据分析开启人工智能新时代
  • TP5使用group报错:1055 Expression #1 of SELECT list is not in GROUP
  • SQL-DML数据操纵语言(Oracle)
  • springboot+axios传参问题
  • (BERT蒸馏)TinyBERT: Distilling BERT for Natural Language Understanding
  • 【数据结构|C语言版】双向链表
  • 适用于 Windows 的 10 个顶级 PDF 编辑器 [免费和付费]
  • 久菜盒子|留学|推荐信|活动类|改性伽马-三氧化二铝催化剂上甲醇制备二甲醚的研究项目
  • Java项目如何使用EasyExcel插件对Excel数据进行导入导出
  • python标准库常用方法集合
  • 智谱AI通用大模型:官方开放API开发基础
  • 单片机家电产品--OC门电路
  • gcc常用命令指南(更新中...)
  • 【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵,网络攻击,流量异常【3】
  • 两步解决 Flutter Your project requires a newer version of the Kotlin Gradle plugin
  • ArcGIS加载的各类地图怎么去除服务署名水印
  • AttributeError: module ‘cv2.face’ has no attribute ‘LBPHFaceRecognizer_create’
  • 配置路由器实现互通
  • Google Guava第五讲:本地缓存实战及踩坑
  • 一个文生视频MoneyPrinterTurbo项目解析
  • 智能商品计划系统如何提升鞋服零售品牌的竞争力
  • OpenHarmony开发案例:【分布式遥控器】
  • 如何将Oracle 中的部分不兼容对象迁移到 OceanBase