【Leetcode】Integer to Roman
2016-06-03 22:24
302 查看
题目链接:https://leetcode.com/problems/integer-to-roman/
题目:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
思路:
I = 1;
V = 5;
X = 10;
L = 50;
C = 100;
D = 500;
M = 1000;
其中两个阶段的之间有一个特殊的表示,用贪心法,每次选择能表示的最大值,把对应的字符串连起来。
算法:
[java] view
plain copy
public String intToRoman(int num) {
String str = "";
String symbol[] = { "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 };
for (int i = 0; num != 0&&i<value.length; i++) {
while(num >= value[i]) {
num -= value[i];
str += symbol[i];
}
}
return str;
}
算法:
[java] view
plain copy
public String intToRoman(int num) {
String str = "";
String symbol[] = { "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 };
for (int i = 0; num != 0&&i<value.length; i++) {
while(num >= value[i]) {
num -= value[i];
str += symbol[i];
}
}
return str;
}
题目:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
思路:
I = 1;
V = 5;
X = 10;
L = 50;
C = 100;
D = 500;
M = 1000;
其中两个阶段的之间有一个特殊的表示,用贪心法,每次选择能表示的最大值,把对应的字符串连起来。
算法:
[java] view
plain copy
public String intToRoman(int num) {
String str = "";
String symbol[] = { "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 };
for (int i = 0; num != 0&&i<value.length; i++) {
while(num >= value[i]) {
num -= value[i];
str += symbol[i];
}
}
return str;
}
算法:
[java] view
plain copy
public String intToRoman(int num) {
String str = "";
String symbol[] = { "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 };
for (int i = 0; num != 0&&i<value.length; i++) {
while(num >= value[i]) {
num -= value[i];
str += symbol[i];
}
}
return str;
}
相关文章推荐
- main方法写错导致的一个错误
- 张宴博客------F 5 详解
- iOS学习总结
- 动态分配内存与静态内存
- 【Leetcode】Reverse Bits
- SICP 习题1. 29 simpson 积分
- python 内置函数和函数装饰器
- Windbg(2)
- springMVC+mybatis+ehcache详细配置
- MLlib数据类型
- IOS动画简介
- 通用单例模式
- ES 父子文档查询
- 腾讯新版MSDK for Unity
- 从多个表中检索记录
- 学术诚信与职业道德 感受
- 关于提高webview里下载apk安装包成功率的研究
- servlet向mysql插入中文时乱码解决
- 程序猿的转型
- 巴特沃斯(Butterworth)滤波器 (2) - 双线性变换