码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 12 - 整数转罗马数字 - [简单模拟]

时间:2019-03-19 21:49:15      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:代码   题解   tor   整数转罗马数字   class   .com   简单   链接   优先   

题目链接:https://leetcode-cn.com/problems/integer-to-roman/

 

题解:

把 $1,4,5,9,10,40,50, \cdots, 900, 1000$ 均看做档位,优先转化大的档位,直到不能转化为止,然后降一个档位,继续转化,反复如此直到 $num=0$。

 

AC代码:

struct Solution
{
    int o[13]={1,4,5,9,10,40,50,90,100,400,500,900,1000};
    string mp[13];
    Solution()
    {
        mp[0]="I", mp[1]="IV", mp[2]="V", mp[3]="IX";
        mp[4]="X", mp[5]="XL", mp[6]="L", mp[7]="XC";
        mp[8]="C", mp[9]="CD", mp[10]="D", mp[11]="CM", mp[12]="M";
    }
    string intToRoman(int num)
    {
        string res;
        int p=12;
        while(num>0)
        {
            while(num<o[p]) p--;
            while(num>=o[p])
            {
                num-=o[p];
                res+=mp[p];
            }
        }
        return res;
    }
};

 

LeetCode 12 - 整数转罗马数字 - [简单模拟]

标签:代码   题解   tor   整数转罗马数字   class   .com   简单   链接   优先   

原文地址:https://www.cnblogs.com/dilthey/p/10561381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!