今天來講第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;
}
};