zoukankan      html  css  js  c++  java
  • [LeetCode]12. Integer to Roman

    原题链接:https://leetcode.com/problems/integer-to-roman/description/

    给定数字输出罗马数字

    我的实现:

    class Solution {
    public:
        string intToRoman(int num) {
            int temp = num;
            string result = "";
            while (temp > 0) {
                if (temp >= 1000) {
                    switch(temp / 1000) {
                        case 1:
                            result += "M";
                            break;
                        case 2:
                            result += "MM";
                            break;
                        case 3:
                            result += "MMM";
                            break;
                        default:
                            return "out of range";
                    }
                    temp = temp - (int)(temp / 1000) * 1000;
                } else if (temp >= 100 && temp < 1000) {
                    switch (temp / 100) {
                        case 1:
                            result += "C";
                            break;
                        case 2:
                            result += "CC";
                            break;
                        case 3:
                            result += "CCC";
                            break;
                        case 4:
                            result += "CD";
                            break;
                        case 5:
                            result += "D";
                            break;
                        case 6:
                            result += "DC";
                            break;
                        case 7:
                            result += "DCC";
                            break;
                        case 8:
                            result += "DCCC";
                            break;
                        case 9:
                            result += "CM";
                            break;
                    }
                    temp = temp - (int)(temp / 100) * 100;
                } else if (temp >= 10 && temp < 100) {
                    switch (temp / 10) {
                        case 1:
                            result += "X";
                            break;
                        case 2:
                            result += "XX";
                            break;
                        case 3:
                            result += "XXX";
                            break;
                        case 4:
                            result += "XL";
                            break;
                        case 5:
                            result += "L";
                            break;
                        case 6:
                            result += "LX";
                            break;
                        case 7:
                            result += "LXX";
                            break;
                        case 8:
                            result += "LXXX";
                            break;
                        case 9:
                            result += "XC";
                            break;
                    }
                    temp = temp - (int)(temp / 10) * 10;
                } else if (temp >= 1 && temp < 10) {
                    switch (temp / 1) {
                        case 1:
                            result += "I";
                            break;
                        case 2:
                            result += "II";
                            break;
                        case 3:
                            result += "III";
                            break;
                        case 4:
                            result += "IV";
                            break;
                        case 5:
                            result += "V";
                            break;
                        case 6:
                            result += "VI";
                            break;
                        case 7:
                            result += "VII";
                            break;
                        case 8:
                            result += "VIII";
                            break;
                        case 9:
                            result += "IX";
                            break;
                    }
                    temp = temp - (int)(temp / 1) * 1;
                }
            }
            
            return result;
        }
    };

    总结:主要就是注意罗马数字的规则

  • 相关阅读:
    使用Python往手机发送短信(基于twilio模块)
    春&风
    故乡
    非常完美
    风 记忆
    风誓
    MATLAB的循环结构
    你要的快乐
    夕颜
    MATLAB的基本元素
  • 原文地址:https://www.cnblogs.com/qianzixuan1996/p/8289961.html
Copyright © 2011-2022 走看看