//复习一下switch case用法,不过roman to integer貌似相对麻烦一些...
class Solution {
public:string intToRoman(int num) {
string str;
char base[]="IVXLCDM";
for(int index=0;num;index+=2,num/=10)
{
int x=num%10;
switch(x)
{
case 1:
str=base[index]+str;
break;
case 2:
str=base[index]+str;
str=base[index]+str;
break;
case 3:
str=base[index]+str;
str=base[index]+str;
str=base[index]+str;
break;
case 4:
str=base[index+1]+str;
str=base[index]+str;
break;
case 5:
str=base[index+1]+str;
break;
case 6:
str=base[index]+str;
str=base[index+1]+str;
break;
case 7:
str=base[index]+str;
str=base[index]+str;
str=base[index+1]+str;
break;
case 8:
str=base[index]+str;
str=base[index]+str;
str=base[index]+str;
str=base[index+1]+str;
break;
case 9:
str=base[index+2]+str;
str=base[index]+str;
break;
default:
break;
}
}return str;
}
};
本文介绍了一种将整数转换为罗马数字的算法实现,通过使用C++语言和switch-case结构来处理每一位数字对应的罗马字符,实现了从1到3999之间的整数到罗马数字的有效转换。
483

被折叠的 条评论
为什么被折叠?



