先了解一下什么是罗马数字
/**
* Given an integer, convert it to a roman numeral.
* Input is guaranteed to be within the range from 1 to 3999.
*/
#include <iostream>
#include <string>
#include <vector>
using namespace std;
//罗马数字共有七个,即I(1),V(5),X(10),L(50),C(100),D(500),M(1000)
string trans[][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 intToRoman(int num)
{
string ret = "";
int i = 0;
while (num != 0)
{
ret = trans[i++][num % 10] + ret;
num /= 10;
}
return ret;
}
int main()
{
cout << intToRoman(3999);
system("pause");
return 0;
}