LeetCode 12. 整数转罗马数字 Java/C++ 贪心算法
程序员文章站
2024-03-23 09:27:52
...
Java/C++ 贪心算法
Java:
class Solution {
public String intToRoman(int num) {
StringBuilder s = new StringBuilder();
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
String[] romans = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
for(int i = 0; i < values.length; i++) {
int value = values[i];
String roman = romans[i];
while(num >= value) {
s.append(roman);
num -= value;
}
if(num == 0) break;
}
return s.toString();
}
}
C++:
class Solution {
public:
string intToRoman(int num) {
string s;
int values[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
string romans[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
for(int i = 0; i < sizeof(values); i++) {
int value = values[i];
string roman = romans[i];
while(num >= value) {
s.append(roman);
num -= value;
}
if(num == 0) break;
}
return s;
}
};