超级简单的一道模拟题。只要从高位依次判断就好了。代码很好理解。
class Solution {
public:
string intToRoman(int num) {
string result = "";
int tmpnum = num;
while (tmpnum >= 1000) {
result += "M";
tmpnum -= 1000;
}
if (tmpnum >=900) {
result += "CM";
tmpnum -= 900;
}
while (tmpnum >= 500) {
result += "D";
tmpnum -= 500;
}
if (tmpnum >= 400) {
result += "CD";
tmpnum -= 400;
}
while (tmpnum >= 100) {
result += "C";
tmpnum -= 100;
}
if (tmpnum >= 90) {
result += "XC";
tmpnum -= 90;
}
while (tmpnum >= 50) {
result += "L";
tmpnum -= 50;
}
if (tmpnum >= 40) {
result += "XL";
tmpnum -= 40;
}
while (tmpnum >= 10) {
result += "X";
tmpnum -= 10;
}
if (tmpnum >= 9) {
result += "IX";
tmpnum -= 9;
}
while (tmpnum >= 5) {
result += "V";
tmpnum -= 5;
}
if (tmpnum >= 4) {
result += "IV";
tmpnum -= 4;
}
while (tmpnum >= 1) {
result += "I";
tmpnum -= 1;
}
return result;
}
};