题目:

阿拉伯数字转化为罗马数字

解题思路:

设置两个vector,一个放罗马数字,一个放罗马数字所对应的阿拉伯数字;

从给定数字num的最高位开始,逐位转化;n-=2;

如果该位数字是1-3,则在结果字符串上加上该位数字大小个roman[n]

如果该位数字是4,则在结果字符串上加上roman[n] + roman[n-1]

如果改为数字是5-8,则在结果字符串上加上roman[n-1] + 若干个roman[n]

如果该位数字是9,则在结果字符串上加上roman[n]+roman[n-2];

代码:

class Solution {
public:string intToRoman(int num) {string res = "";vector<char> roman = { 'M', 'D', 'C', 'L', 'X', 'V', 'I' };vector<int> value = { 1000, 500, 100, 50, 10, 5, 1 };for (int n = 0; n < 7; n += 2) {int x = num / value[n];if (x >= 1 && x <= 3) {for (int i = 0; i < x; i++) {res += roman[n];}}else if (x == 4) {res = res + roman[n] + roman[n - 1];}else if (x >= 5 && x <= 8) {res += roman[n - 1];for (int i = 5; i < x; i++) {res += roman[n];}}else if (x == 9) {res = res + roman[n] + roman[n - 2];}num %= value[n];}return res;}
};

转载于:https://www.cnblogs.com/yxlsblog/p/10637741.html

leetcode13相关推荐

  1. LeetCode13.罗马数字转整数 JavaScript

    LeetCode13.罗马数字转整数 JavaScript 罗马数字包含以下七种字符: ·I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 ...

  2. Leetcode-13. 罗马数字转整数(C++)

    题目链接 https://leetcode-cn.com/problems/roman-to-integer 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符     ...

  3. LeetCode----13. 罗马数字转整数

    char roman[7] ="IVXLCDM"; int num[7] = {1,5,10,50,100,500,1000};int map(char c) //7种罗马转为阿拉 ...

  4. leetcode13. 罗马数字转整数

    罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             10 L ...

  5. 52 - LeetCode-13 -罗马数字转整数_罗马数字转数字

    //LeetCode-13-数组和mapclass Solution {public:int romanToInt(string s) {map<char,int> map;map['M' ...

  6. 算法-罗马数字转成整数(leetcode13)

    罗马数组转换整数详情描述 解决: 有特殊的情况,当左边的罗马数字小于右边的罗马数组,那我们就要用大的减去小的: 例如4(IV) I代表1, V代表5,那么IV=5-1=4,也就是5+(-1)

  7. LeetCode-13.罗马数字转整数

    题目内容 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/roman-to-integer/ 罗马数字包含以下七种字符: I, V, X, L, ...

  8. leetcode13——步长k的差值小于t的元素组,包含1的正方形面积,完全二叉树的结点个数,矩形重叠面积,汇总区间

    题目一: leetcode220 给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值 ...

  9. C练题笔记之:Leetcode-13. 罗马数字转整数

    题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             1 ...

最新文章

  1. klee错误汇报二:KLEE的optimize选项的一个困惑
  2. fragment error
  3. 写代码水平的几个发展阶段
  4. SharpGL学习笔记(一) 平台构建与Opengl的hello World (转)
  5. powerdesigner导入sql生成pdm没有注释_PDM手写签名实现方法
  6. GMP与ISO9000有何区别?(转载)
  7. idea中项目文件颜色含义
  8. Leo个人MSN简明使用手册
  9. android killer使用方法,AndroidKiller安装、设置及使用教程
  10. [Android]DDMS查看app保存的Sqlite数据库db文件和db升级
  11. 安装eclipse c++版本neno
  12. 水杯测试用例(500ml的塑料水杯)
  13. How Broswer Work
  14. 个体工商户怎么开通微信支付功能及收款码?
  15. MATLAB Support Package for USB Webcams 的使用方法(MATLAB调用摄像头后的使用方法)
  16. 一加手机怎么root权限_一加五,怎么获取ROOT权限
  17. 【转】校园招聘 建议
  18. Feinstein Institute研究人员解码脑沟和白质区域的神经活动,预测手指运动和手部触觉刺激...
  19. 元旦到了,手把手教你用 Python 制作一个炫酷烟花秀
  20. 网页中播放FLV视频文件的代码

热门文章

  1. 别人总结的一些git教程大全
  2. # 和 ## 的区别
  3. python socketio_flask-socketio实现WebSocket的方法
  4. lambda中使用filter过滤
  5. docker ps命令详解 列出运行中的容器
  6. oracle财务软件凭证打印,金算盘财务软件后台数据库为Oracle
  7. 收集一些优秀的DoNet开源项目
  8. 403 forbidden_[SpringSecurity] 自定义403页面
  9. php添加项目,thinkphp添加一个项目
  10. java 类型转换方法_java数据类型转换的常见方法