您的位置:首页 > 其它

Integer to Roman

2015-07-08 09:51 267 查看
主要思想:
将罗马数字的范围分块,其中,最左部分可分为13个点。

对于目标数字,看它在哪个范围内,则它可以拆分为左边节点对应的字符串+(数字-左边界值)的对应罗马字符的组合。

用一个递归算法来实现即可。

class Solution {
public:
string intToRoman(int num) {
if(num==0)
{
return "";
}
int nums[13]={1,4,5,9,10,40,50,90,100,400,500,900,1000};
string strs[13]={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
string res="";
for(int i=12;i>=0;i--)
{
if(num>=nums[i])
{
res=res+strs[i];
int temp=num-nums[i];
res=res+intToRoman(temp);
break;
}
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: