• lwwtcode 13-Roman to interge


    将罗马数字转为整形

    首先要知道罗马数字的规则:

    1、罗马数字一共有7个,即 I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000)

    罗马数字没有“0”

    2、重复字数,罗马数字最多重复3次。

    3、右加左减:
                在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。
                在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。

    4、 左减的数字有限制,仅限于I、X、C,且放在大数的左边只能用一个。
    (*) V 和 X 左边的小数字只能用Ⅰ。
    (*) L 和 C 左边的小数字只能用X。
    (*) D 和 M 左 边的小数字只能用C。

    int map(const char c)
    {
        switch (c) {  
            case 'I': return 1;  
            case 'V': return 5;  
            case 'X': return 10;  
            case 'L': return 50;  
            case 'C': return 100;  
            case 'D': return 500;  
            case 'M': return 1000;  
            default: return 0;  
            }  
    }
    int romanToInt(string s) {  
            int result = 0;  
            for (size_t i = 0; i < s.size(); i++) {  
                if (i > 0 && map(s[i]) > map(s[i - 1])) {  
                    result += (map(s[i]) - 2 * map(s[i - 1]));  
                }  
                else {  
                    result += map(s[i]);  
                }  
            }  
            return result;  
        }  
  • 相关阅读:
    flutter 3des
    flutter踩坑记
    【OS_Windows】彻底关闭windows10自动更新
    使用 httpclient 上传下载文件
    git操作
    jmeter在Windows下请求https的接口
    python xlsxwriter简单使用
    asp.net core webapi 文件下载实现
    使用微信小程序连接到 MQTT 云服务
    MQTT.js 入门教程
  • 原文地址:https://www.cnblogs.com/biong-blog/p/4541266.html
Copyright © 2020-2023  润新知