Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
题意:将阿拉伯数字转换为罗马数字表示
思路:首先了解罗马数字的表示,然后就是从大到小找符合的数字了
class Solution {
public:
string intToRoman(int num) {
string ans = "";
string dit[] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
int val[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
for (int i = 0; num > 0; i++) {
while (num >= val[i]) {
num -= val[i];
ans += dit[i];
}
}
return ans;
}
};
原文:http://blog.csdn.net/u011345136/article/details/42873247