//注意罗马数字的表示方法
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
string intToRoman(int num) {
if(num == 0)
return 0;
string re;
//为什么4, 9, 40, 900等会出现, 是应为一个罗马数字只能出现三次,还有一个原因是4000以内的数都可以用s1中数来表示
int val[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
string s1[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
for(int i = 0; i < sizeof(val)/sizeof(int); i++)
{
while(num >= val[i])
{
re+=s1[i]; //将s1[i]加到re的后面
num -= val[i];
}
}
//cout << "re = " << re << endl;
return re;
}
};
int main()
{
int a = 1;
Solution s;
string dig = s.intToRoman(a);
cout << "s = " << dig << endl;
return 0;
}