给定一个整数,将其转换成罗马数字。
返回的结果要求在1-3999的范围内。
说明:
什么是 罗马数字?
https://en.wikipedia.org/wiki/Roman_numerals
https://zh.wikipedia.org/wiki/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97
http://baike.baidu.com/view/42061.htm
样例:
4 -> IV
12 -> XII
21 -> XXI
99 -> XCIX
更多案例,请戳 http://literacy.kent.edu/Minigrants/Cinci/romanchart.htm
#ifndef C418_H
#define C418_H
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Solution {
public:
/*
* @param n: The integer
* @return: Roman representation
*/
string intToRoman(int n) {
// write your code here
if (n < 0)
return NULL;
vector<vector<string>> table{
{"","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 str;
str += table[3][n / 1000 % 10];
str += table[2][n / 100 % 10];
str += table[1][n / 10 % 10];
str += table[0][n % 10];
return str;
}
};
#endif