• LeetCode——12. Integer to Roman


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

    二.题目大意:

      给定一个整数,返回它的罗马数字的形式。

    三.题解:

      要想做出这道题目,首先应该弄清楚罗马数字的规律。罗马数字中的任意一个字符连写不会重复出现4次,最多连续出现3次。题目给定的数字范围是1~3999,所以说不用特意去考虑这一点了,按照平常的思路去做就行了。给定一个罗马数字,由于它最多为4位,所以只需拆成个分位、十分位、百分位和千分位即可。对于每个位置的数字对应哪个罗马数字,只要对应起来最后拼成一起即可。代码如下:

    class Solution {
    public:
        string intToRoman(int num) {
        char* roman[4][10] = {{"","I","II","III","IV","V","VI","VII","VIII","IX"},//个分位的罗马字母
        {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},//百分位的罗马字母
        {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},//十分位的罗马字母
        {"","M","MM","MMM"}};//个分位的罗马字母
        string romanNum;
        romanNum.append(roman[3][num / 1000 % 10]);//千分位
        romanNum.append(roman[2][num / 100 % 10]);//百分位
        romanNum.append(roman[1][num / 10 % 10]);//十分位
        romanNum.append(roman[0][num % 10]);//个分位
        return romanNum;
        }
    };
    

     本体的关键之处在于罗马数字的各个分位的数字如何表示。

  • 相关阅读:
    JVM(六)——垃圾回收算法
    JVM(五)——执行引擎、String
    JVM(四)——方法区
    JVM(三)——堆
    JVM(二)——虚拟机栈
    JVM(一)——概述和类加载子系统
    Java EE入门(二十二)——Linux和Nginx
    操作系统(六)——磁盘和IO
    【03】RNN
    【02】时间复杂度
  • 原文地址:https://www.cnblogs.com/wangkundentisy/p/8485610.html
Copyright © 2020-2023  润新知