题目
Given an integer, convertit to a roman numeral.
Input is guaranteed to bewithin the range from 1 to 3999.
求数字转罗马数字,可以按位查表
代码:
string c[4][10]={"","I","II","III","IV","V","VI","VII","VIII","IX", //字符表
"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC",
"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM",
"","M","MM","MMM"};
class Solution {
public:
string intToRoman(int num) {
string ans;
int radix=1000;
for(int i=3;i>=0;i--) //由高位至低位转换
{
ans+=c[i][num/radix];
num%=radix;
radix/=10;
}
return ans;
}
};