【leetcode】Integer to Roman
2013-04-21 18:41
429 查看
Question :
Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.Anwser 1 :
Anwser 2 :
Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.Anwser 1 :
class Solution { public: string intToRoman(int num) { // Start typing your C/C++ solution below // DO NOT write int main() function string res; string symbol[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; int value[]={1000,900,500,400,100,90,50,40,10,9,5,4,1}; int i = 0; while(num != 0){ if(num >= value[i]){ // minus largest number num -= value[i]; res += symbol[i]; } else { i++; } } return res; } };
Anwser 2 :
class Solution { public: string intToRoman(int num) { // Start typing your C/C++ solution below // DO NOT write int main() function char symbol[7] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'}; string res = ""; int scale = 1000; for (int i = 6; i >= 0; i -= 2) { int digit = num / scale; num2roman(digit, res, symbol + i); num %= scale; scale /= 10; } return res; } void num2roman(int num, string& res, char symbols[]) { if (num == 0) return; if (num <= 3) res.append(num, symbols[0]); else if (num == 4) { res.append(1, symbols[0]); res.append(1, symbols[1]); } else if (num <= 8) { res.append(1, symbols[1]); res.append(num - 5, symbols[0]); } else { res.append(1, symbols[0]); res.append(1, symbols[2]); } } };
相关文章推荐
- LeetCode - 12. Integer to Roman
- LeetCode题解:Roman to Integer
- leetcode - 12.Integer to Roman
- Leetcode NO.13 Roman to Integer
- LeetCode——Integer to Roman
- 【Leetcode】Integer To Roman in JAVA
- leetcode_13题——Roman to Integer(string,数学问题)
- leetcode第一刷_Roman to Integer
- LeetCode Integer to Roman
- LeetCode OJ Integer to Roman
- Leetcode: Roman to Integer
- <LeetCode OJ> 13 / 12 Roman to Integer & Integer to Roman
- Leetcode - Roman to Integer
- Leetcode 13 Roman to Integer
- LeetCode 12. Integer to Roman
- LeetCode 013 Roman to Integer
- [LeetCode]12 Integer to Roman
- LeetCode 12. Integer to Roman
- leetcode 013 —— Roman to Integer
- [LeetCode]Roman to Integer,解题报告