12. 整数转罗马数字

  1. 题目链接

  2. 解题思路:整数转罗马数字,可以理解为一个一个「数」,有一个转换表,从高位依次往低位「数」,直接看代码更清晰

  3. 代码

    class Solution {
    public:
    string intToRoman(int num) {
    // 转换表
    vector<pair<int, string>> table {
    {1, "I"}, {4, "IV"}, {5, "V"}, {9, "IX"}, {10, "X"}, {40, "XL"}, {50, "L"},
    {90, "XC"}, {100, "C"}, {400, "CD"}, {500, "D"}, {900, "CM"}, {1000, "M"}
    };
    int n = table.size();
    string ans = "";
    for (int i = n - 1; i >= 0; --i) {
    while (num >= table[i].first) { // 如果能转换高位的 一直转换
    ans = ans + table[i].second;
    num -= table[i].first;
    }
    }
    return ans;
    }
    };
posted @   ouyangxx  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示