整数转罗马数字

const pair<int,string> valueSymbols[]={
//先定义一个数组用来表示罗马数字和数字的对应关系
    {1000,"M"},
    {900,"CM"},
    {500,"D"},
    {400,"CD"},
    {100,"C"},
    {90,"XC"},
    {50,"L"},
    {40,"XL"},
    {10,"X"},
    {9,"IX"},
    {5,"V"},
    {4,"IV"},
    {1,"I"},
};
class Solution {
public:
    string intToRoman(int num) {
        string roman;//定义空字符串roman
//遍历当前数组
        for(const auto&[value,symbol]:valueSymbols){
            while(num>=value){
//遍历,如果当前数字大于等于value的值就num减去当前value的值
                num-=value;
//并且当前对应的罗马数字对应的字符添加到ramon里面
                roman+=symbol;
            }
            if(num==0){
                break;//遍历完成跳出循环
            }
        }
        return roman;//返回
    }
};

 很多东西不会,也不太记得住,首先不会定义那个数组,思路倒是有一点点,也是差不多找最大的相加减去然后再遍历找最大的,直到遍历完成。继续加油吧,今天的训练到这里了,接着搞网站

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值