题目大意:给定数字,将其转化为罗马数字的形式

罗马数字其实只有 I V X L C D M 这几种形式,其余均为组合的,去百度了解一下就ok。

所以首先想到的就是,将个、十、百、千位的数字构造出来,然后直接用就好了。

要特别注意为整10,整100、1000的情况。

String [] ge ={"I","II","III","IV","V","VI","VII","VIII","IX"};

String [] shi = {"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};

String [] bai = {"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};

String [] qian = {"M","MM","MMM"};

public String intToRoman(int num) {

String result = "";
String g = "";
String s = "";
String b = "";
String q = "";

if(num%10>0){
g = ge[num%10-1];
num/=10;}else{

g="";
num/=10;
}

if(num>0){

if(num%10>0){
s = shi[num%10-1];
num/=10;}else{

s="";
num/=10;
}

if(num>0){

if(num%10>0){
b = bai[num%10-1];
num/=10;}else{

b="";
num/=10;
}

if(num>0){

q=qian[num%10-1];
num/=10;

return q+b+s+g;

}
else{

return b+s+g;

}

}
else{

return s+g;

}

}
else
return g;

}

更精简的代码(将整10、100、1000的情况整合到数组里面)

string intToRoman(int num) {

string roman[4][10] = {

{"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},

{"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},

{"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"},

{"", "M", "MM", "MMM"}

};

string ret = "";

int digit = 0;

while (num)

{ret = roman[digit++][num % 10] + ret, num /= 10; return ret; }

LeetCode题解 #12 Integer to Roman的更多相关文章

  1. 《LeetBook》leetcode题解(12):Integer to Roman[M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  2. 【LeetCode】12. Integer to Roman (2 solutions)

    Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be within t ...

  3. 【LeetCode】12. Integer to Roman 整数转罗马数字

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:roman, 罗马数字,题解,leetcode, 力扣, ...

  4. 【一天一道LeetCode】#12 Integer to Roman

    一天一道LeetCode系列 (一)题目 Given an integer, convert it to a roman numeral. Input is guaranteed to be with ...

  5. 【LeetCode】12. Integer to Roman 整型数转罗马数

    题目: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from ...

  6. 【leetcode】12. Integer to Roman

    题目描述: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range fr ...

  7. LeetCode:12. Integer to Roman(Medium)

    1. 原题链接 https://leetcode.com/problems/integer-to-roman/description/ 2. 题目要求 (1) 将整数转换成罗马数字: (2) 整数的范 ...

  8. leetCode练题——12. Integer to Roman

    1.题目 12. Integer to Roman Roman numerals are represented by seven different symbols: I, V, X, L, C,  ...

  9. Leetcode 12——Integer to Roman

    12.Integer to Roman Given an integer, convert it to a roman numeral. Input is guaranteed to be withi ...

随机推荐

  1. fedora 26 Mysql

    安装 Fedora用dnf默认安装的使Mariadb,即 [*****@localhost ~]$ sudo dnf install mysql-server ... [*****@localhost ...

  2. ubuntu版的sublime-text3输入中文问题

    前言 sublime-text3中看又中用,但是呢,ubuntu下有个问题,就是无法输入中文.这很难受啊,要写一些重要的内容时,总还是中文来的顺畅. 解决办法 工具:sublime-text-imfi ...

  3. XMPP协议相关知识

    XMPP协议的组成 主要的XMPP 协议范本及当今应用很广的XMPP 扩展: RFC 3920 XMPP:核心.定义了XMPP 协议框架下应用的网络架构,引入了XML Stream(XML 流)与XM ...

  4. ios逆向工程-静态分析

    最近在学习IOS逆向工程,查看网络上的资料也不是太多,边学边总结一下. 首先学习资料: 念茜(大神)的博客: http://nianxi.net <ios应用逆向工程 分析与实战> --- ...

  5. Ubuntu和win双系统删除ubuntu开机出错

    Ubuntu和win双系统删除ubuntu开机出错问题. 报错error:unknown filesystem. grub rescue>_ 很简单: 进入pe 打开diskgenius 选择你 ...

  6. BZOJ3438:小M的作物 (最大闭合权图->最小割)

    小M在MC里开辟了两块巨大的耕地A和B(你可以认为容量是无穷),现在,小P有n中作物的种子,每种作物的种子 有1个(就是可以种一棵作物)(用1...n编号),现在,第i种作物种植在A中种植可以获得ai ...

  7. 3DsMax动画插件

    * 简易骨骼动画: Mesh当前帧顶点 = Mesh绑定时顶点 * 绑定时骨骼的变换到本帧骨骼的变换的改变量. = Mesh绑定时顶点 * 绑定时骨骼的变换的逆矩阵 * 本帧的骨骼变换. = Mesh ...

  8. 20179223《Linux内核原理与分析》第七周学习笔记

    视频知识学习 1.fork()函数被调用一次,但返回两次: 2.Linux通过复制父进程来创建一个子进程,通过调用fork来实现: 3.Linux会为每个子进程动态的分配一个task_struct结构 ...

  9. Linux Mint17.1安装PHPStorm8.0.2

    phpstorm是用JAVA开发的,所以在安装之前需要先安装jdk sudo apt-get install default-jdk 从官网上下载phpstorm 的linux版本 http://ww ...

  10. 《DSP using MATLAB》示例Example 9.5

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...