12、Integer to Roman
来源:互联网 发布:lua for windows 5.1 编辑:程序博客网 时间:2024/05/16 01:17
题目:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
解题思路:罗马数字共有七个,即I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。按照下面的规则可以表示任意正整数。重复数次:一个罗马数字重复几次,就表示这个数的几倍。 右加左减:在一个较大的罗马数字的右边记上一个较小的罗马数字,表示大数字加小数字。在一个较大的数字的左边记上一个较小的罗马数字,表示大数字减小数字。但是,左减不能跨越等级。比如,99不可以用IC表示,用XCIX表示。 加线乘千:在一个罗马数字的上方加上一条横线或者在右下方写M,表示将这个数字乘以1000,即是原数的1000倍。同理,如果上方有两条横线,即是原数的1000000倍。 单位限制:同样单位只能出现3次,如40不能表示为XXXX,而要表示为XL。
python版本:
class Solution(object): def intToRoman(self, num): """ :type num: int :rtype: str """ roman = [ ["","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"] ] digit = 0 res = "" while num>0: remain = num%10 res = roman[digit][remain]+res num = num/10 digit += 1 return res
c++版本:
class Solution {public: string intToRoman(int num) { string roman[][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"} }; //1-9,10-90,100-900,1000-3000 string res = ""; int digit = 0; while(num>0) { int remain = num%10; res = roman[digit][remain]+res; digit++; num = num/10; } return res; }};
罗马数字共有七个,即I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。按照下面的规则可以表示任意正整数。重复数次:一个罗马数字重复几次,就表示这个数的几倍。 右加左减:在一个较大的罗马数字的右边记上一个较小的罗马数字,表示大数字加小数字。在一个较大的数字的左边记上一个较小的罗马数字,表示大数字减小数字。但是,左减不能跨越等级。比如,99不可以用IC表示,用XCIX表示。 加线乘千:在一个罗马数字的上方加上一条横线或者在右下方写M,表示将这个数字乘以1000,即是原数的1000倍。同理,如果上方有两条横线,即是原数的1000000倍。 单位限制:同样单位只能出现3次,如40不能表示为XXXX,而要表示为XL。
0 0
- 12、Integer to Roman
- 12、Integer to Roman
- 12Integer to Roman
- #12 Integer to Roman
- 12 Integer to Roman
- [12]Integer to Roman
- 12、Integer to Roman
- 【12】Integer to Roman
- 12 Integer to Roman
- 12-Integer to Roman
- Leetcode[12-13] Roman to Integer & Integer to Roman(Java)
- LeetCode_OJ【12】【13】Integer to Roman && Roman to Integer
- <LeetCode OJ> 13 / 12 Roman to Integer & Integer to Roman
- leetcode 12|13. Integer to Roman && Roman to Integer
- [LeetCode 12] Integer to Roman
- leetcode 12 Integer to Roman
- [leetcode 12] Integer to Roman
- [Leetcode] 12 - Integer to Roman
- ListView之ArrayAdapter详解
- DivX/XviD -opencv 视频文件读取显示问题解决
- LibSVM数据分类预测
- 关于eclipse android ctrl + 左键(鼠标左键)直接打开xml文件
- uva 1252——Twenty Questions
- 12、Integer to Roman
- 【Leetcode】First Missing Positive
- PHP哈希表结构的深入剖析
- Android自定义ProgressDialog
- Struts2 使用Validation框架验证数据
- nyoj 545 Metric Matrice【矩阵】水题
- [LeetCode]014-Longest Common Prefix
- FPGA学习之按键控制led
- STM32 GPIO之 GPIO_Init() 函数