Roman numerals are represented by seven different symbols: IVXLCD and M.

Symbol       Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

For example, two is written as II in Roman numeral, just two one's added together. Twelve is written as, XII, which is simply X + II. The number twenty seven is written as XXVII, which is XX + V + II.

Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:

  • I can be placed before V (5) and X (10) to make 4 and 9.
  • X can be placed before L (50) and C (100) to make 40 and 90.
  • C can be placed before D (500) and M (1000) to make 400 and 900.

Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.

Example 1:

Input: 3
Output: "III"

Example 2:

Input: 4
Output: "IV"

Example 3:

Input: 9
Output: "IX"

Example 4:

Input: 58
Output: "LVIII"
Explanation: L = 50, V = 5, III = 3.

Example 5:

Input: 1994
Output: "MCMXCIV"
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
class Solution {
public String intToRoman(int num) {
// need to be in reverse order
StringBuilder sb = new StringBuilder();
int[] values = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
String[] strs = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
for (int i = 0; i < values.length; i++) {
// keep adding this value
while(num >= values[i]) {
sb.append(strs[i]);
num -= values[i];
}
}
return sb.toString();
} }

最新文章

  1. UML Sequence sample: if-else
  2. css的重置和原子类的使用
  3. Codevs 1080 线段树联系
  4. POJ3260——The Fewest Coins(多重背包+完全背包)
  5. CentOS 6.8安装Python2.7.13
  6. foreach绑定
  7. 写了一个Mac快速设置、打开和关闭Web代理的Shell命令
  8. java 基础语法 1
  9. 转载:WPF MVVM之INotifyPropertyChanged接口的几种实现方式
  10. MFC中小笔记(三)
  11. 安装linux环境及相关包方法
  12. rabbitmq应用
  13. suse日常操作(含suse/rhel内核与发行版对应关系)
  14. JAVA第五周 动手动脑
  15. Servlet会话管理一(URL重写和表单隐藏域)
  16. 桶排序和计数排序的理解实现和比较(Java)
  17. spring shiro 集成
  18. 指定html转pdf文档
  19. java代码---indexOf()方法
  20. UML的常用关系及其符号表示

热门文章

  1. PHP SeasLog实现高性能日志记录
  2. ArrayList集合的增、删、改、获取和长度
  3. nodejs(13)模块加载机制
  4. PAT Advanced 1064 Complete Binary Search Tree (30) [⼆叉查找树BST]
  5. python3编码问题个人理解
  6. pip速度慢解决办法
  7. template.js的介绍
  8. django2:路由path语法
  9. python3 str.encode bytes.decode
  10. 题解 P6005 【[USACO20JAN]Time is Mooney G】