12. Integer to Roman 和 13. Roman to Integer

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

把一个数字变成罗马数字,直接递归暴力,代码有点丑23333

class Solution {
public:
    string intToRoman(int num) {
        if(num >= 1000)
            return "M" + intToRoman(num - 1000);
        if(num <= 999 && num >= 900)
            return "CM" + intToRoman(num - 900);
        if(num <= 899 && num >= 800)
            return "DCCC" + intToRoman(num - 800);
        if(num <= 799 && num >= 700)
            return "DCC" + intToRoman(num - 700);
        if(num <= 699 && num >= 600)
            return "DC" + intToRoman(num - 600);
        if(num <= 599 && num >= 500)
            return "D" + intToRoman(num - 500);
        if(num <= 499 && num >= 400)
            return "CD" + intToRoman(num - 400);
        if(num <= 399 && num >= 300)
            return "CCC" + intToRoman(num - 300);
        if(num <= 299 && num >= 200)
            return "CC" + intToRoman(num - 200);
        if(num <= 199 && num >= 100)
            return "C" + intToRoman(num - 100);
        if(num <= 99 && num >= 90)
            return "XC" + intToRoman(num - 90);
        if(num <= 89 && num >= 80)
            return "LXXX" + intToRoman(num - 80);
        if(num <= 79 && num >= 70)
            return "LXX" + intToRoman(num - 70);
        if(num <= 69 && num >= 60)
            return "LX" + intToRoman(num - 60);
        if(num <= 59 && num >= 50)
            return "L" + intToRoman(num - 50);
        if(num <= 49 && num >= 40)
            return "XL" + intToRoman(num - 40);
        if(num <= 39 && num >= 30)
            return "XXX" + intToRoman(num - 30);
        if(num <= 29 && num >= 20)
            return "XX" + intToRoman(num - 20);
        if(num <= 19 && num >= 10)
            return "X" + intToRoman(num - 10);
        if(num == 9) return "IX";
        if(num == 8) return "VIII";
        if(num == 7) return "VII";
        if(num == 6) return "VI";
        if(num == 5) return "V";
        if(num == 4) return "IV";
        if(num == 3) return "III";
        if(num == 2) return "II";
        if(num == 1) return "I";
        return "";
    }
};

13是把罗马数值变成普通的数字233333,我直接贴别人的代码了233333

class Solution {
public:
    int getVal(char a)
{
    switch (a) {
    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;
    }
    return 0;
}

int romanToInt(string s)
{
    int res = 0;
    char max = 'I';
    for (int i = s.size()-1; i >= 0; --i) {
        if (getVal(s[i]) >= getVal(max)) {
            max = s[i];
            res += getVal(s[i]);
        } else {
            res -= getVal(s[i]);
        }
    }
    return res;
}
};
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值