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