12. Integer to Roman
题目:
解答:
方法就是分步计算,从左到右依次处理即可。
代码:
class Solution {
public:
string intToRoman(int num) {
char s[1000] = {0};
int index = 0;
if(num >= 1000){
while(num >= 1000){
s[index++] = 'M';
num -= 1000;
}
}
if(num >= 900){
s[index++] = 'C';
s[index++] = 'M';
num -= 900;
}
if(num >= 500){
s[index++] = 'D';
num -= 500;
}
if(num >= 400){
s[index++] = 'C';
s[index++] = 'D';
num -= 400;
}
if(num >= 100){
while(num >= 100){
s[index++] = 'C';
num -= 100;
}
}
if(num >= 90){
s[index++] = 'X';
s[index++] = 'C';
num -= 90;
}
if(num >= 50){
s[index++] = 'L';
num -= 50;
}
if(num >= 40){
s[index++] = 'X';
s[index++] = 'L';
num -= 40;
}
if(num >= 10){
while(num >= 10){
s[index++] = 'X';
num -= 10;
}
}
if(num >= 9){
s[index++] = 'I';
s[index++] = 'X';
num -= 9;
}
if(num >= 5){
s[index++] = 'V';
num -= 5;
}
if(num >= 4){
s[index++] = 'I';
s[index++] = 'V';
num -= 4;
}
if(num > 0){
while(num > 0){
s[index++] = 'I';
num--;
}
}
return s;
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)