今天來講第12題
使用羅馬數字來表示整數
初始化結果字串:
str
,用來儲存轉換結果的羅馬數字。處理數字的不同範圍:
while
迴圈來逐步減少數字 num
的值,並同時將對應的羅馬數字追加到結果字串 str
中。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
)。逐步轉換數字:
M
):如果數字 num >= 1000
,則從 num
中減去 1000 並在結果字串中添加 "M"。CM
):如果 num >= 900
,從 num
減去 900,並在字串中添加 "CM"。D
):如果 num >= 500
,從 num
減去 500,並在字串中添加 "D"。CD
):如果 num >= 400
,從 num
減去 400,並在字串中添加 "CD"。C
):如果 num >= 100
,從 num
減去 100,並在字串中添加 "C"。XC
):如果 num >= 90
,從 num
減去 90,並在字串中添加 "XC"。L
):如果 num >= 50
,從 num
減去 50,並在字串中添加 "L"。XL
):如果 num >= 40
,從 num
減去 40,並在字串中添加 "XL"。X
):如果 num >= 10
,從 num
減去 10,並在字串中添加 "X"。IX
):如果 num >= 9
,從 num
減去 9,並在字串中添加 "IX"。V
):如果 num >= 5
,從 num
減去 5,並在字串中添加 "V"。IV
):如果 num >= 4
,從 num
減去 4,並在字串中添加 "IV"。I
):如果 num >= 1
,從 num
減去 1,並在字串中添加 "I"。結束條件:
num
減至 0 時,迴圈結束,所有對應的羅馬數字已經追加到字串 str
中。返回結果:
str
。class Solution {
public:
string intToRoman(int num) {
string str;
while(num!=0)
{
if(num>=1000)
{
num-=1000;
str+="M";
}
else if(num>=900)
{
num-=900;
str+="CM";
}
else if(num>=500)
{
num-=500;
str+="D";
}
else if(num>=400)
{
num-=400;
str+="CD";
}
else if(num>=100)
{
num-=100;
str+="C";
}
else if(num>=90)
{
num-=90;
str+="XC";
}
else if(num>=50)
{
num-=50;
str+="L";
}
else if(num>=40)
{
num-=40;
str+="XL";
}
else if(num>=10)
{
num-=10;
str+="X";
}
else if(num>=9)
{
num-=9;
str+="IX";
}
else if(num>=5)
{
num-=5;
str+="V";
}
else if(num>=4)
{
num-=4;
str+="IV";
}
else
{
num-=1;
str+="I";
}
}
return str;
}
};