题目:把一个1~3999的int转换成罗马数字写法(返回string)。
1。百度下罗马数字的写法,开始想用的switch很繁琐,打击到了。还是int和string之间的转换。
class Solution
{
public:
string intToRoman(int num)
{
string roman[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
int value[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string res;
for(size_t i=0;num>0;++i)
{//从大value到小value检测。
int tmp=num/value[i];
num%=value[i];
while(tmp)
{
res+=roman[i];
tmp--;
}
}
return res;
}
};