侧边栏壁纸
博主头像
Hope博主等级

努力赚钱的工科研究生

  • 累计撰写 362 篇文章
  • 累计创建 129 个标签
  • 累计收到 5 条评论
标签搜索

LeetCode 12. 整数转罗马数字

Hope
2022-03-28 / 0 评论 / 0 点赞 / 301 阅读 / 515 字
温馨提示:
本文最后更新于 2022-03-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

LeetCode 12. 整数转罗马数字

思路:

先列出每一种情况。
DEFBFB94885384BC4CE2E492F483A145.png

可以发现只有 1 4 5 9 是比较特殊的,其它4种情况都是可以递推出来的,所以我们可以打表,把几种特殊的情况列出来,然后去计算。
如下的模拟过程。
D7039319BAA2BB2B92B22167EE54E02E.png
代码:

class Solution {
public:
    string intToRoman(int num) {
        int Num[]={
            1000, 
            900,500,400,100,
            90,50,40,10,
            9,5,4,1
        };
        string prs[]={
            "M",
            "CM","D","CD","C",
            "XC","L","XL","X",
            "IX","V","IV","I"
        };
        string res;
        //因为是倒着定义的 所以是正方向去判断
        for(int i=0;i<13;i++){
            while(num>=Num[i]) {
                num-=Num[i];
                res+=prs[i];
            }
        }
        
        return res;      
    }
};
0

评论区