mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
Create 12. Integer to Roman.md
This commit is contained in:
parent
a952faff55
commit
49ddc38f4a
35
12. Integer to Roman.md
Normal file
35
12. Integer to Roman.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# [12. Integer to Roman](https://leetcode.com/problems/integer-to-roman/)
|
||||||
|
# 思路
|
||||||
|
阿拉伯数字转罗马数字。
|
||||||
|
按照题意将所有可能的罗马数字列出来,再从大到小看能不能将阿拉伯数字转换成罗马数字。详细过程见代码。
|
||||||
|
|
||||||
|
# C++
|
||||||
|
``` C++
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
string intToRoman(int num) {
|
||||||
|
map<int, string>int2rom;
|
||||||
|
string res = "";
|
||||||
|
int nums[13] = {1,4,5,9,10,40,50,90,100,400,500,900,1000};
|
||||||
|
int2rom[1] = "I";
|
||||||
|
int2rom[5] = "V";
|
||||||
|
int2rom[10] = "X";
|
||||||
|
int2rom[50] = "L";
|
||||||
|
int2rom[100] = "C";
|
||||||
|
int2rom[500] = "D";
|
||||||
|
int2rom[1000] = "M";
|
||||||
|
int2rom[4] = "IV";
|
||||||
|
int2rom[9] = "IX";
|
||||||
|
int2rom[40] = "XL";
|
||||||
|
int2rom[90] = "XC";
|
||||||
|
int2rom[400] = "CD";
|
||||||
|
int2rom[900] = "CM";
|
||||||
|
for(int i = 12; i >= 0; i--){
|
||||||
|
int tmp = num / nums[i];
|
||||||
|
while(tmp--) res += int2rom[nums[i]];
|
||||||
|
num %= nums[i];
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user