首页 > 代码库 > LeetCode——Integer to Roman
LeetCode——Integer to Roman
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
给定一个整数,把它转换成罗马数字。
输入可以保证在1到3999之间。
下图是转换规则。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
I | II | III | IV | V | VI | VII | VIII | IX |
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
X | XX | XXX | XL | L | LX | LXX | LXXX | XC |
100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 |
C | CC | CCC | CD | D | DC | DCC | DCCC | CM |
public static String intToRoman(int num) { StringBuffer buf = new StringBuffer(); int dddd = num / 1000; int ddd = num % 1000 / 100; int dd = num % 1000 % 100 / 10; int d = num % 1000 % 100 % 10; for(int i=0;i<dddd;i++) buf.append("M"); if(ddd == 1) buf.append("C"); else if(ddd == 2) buf.append("CC"); else if(ddd == 3) buf.append("CCC"); else if(ddd == 4) buf.append("CD"); else if(ddd == 5) buf.append("D"); else if(ddd == 6) buf.append("DC"); else if(ddd == 7) buf.append("DCC"); else if(ddd == 8) buf.append("DCCC"); else if(ddd == 9) buf.append("CM"); if(dd == 1) buf.append("X"); else if(dd == 2) buf.append("XX"); else if(dd == 3) buf.append("XXX"); else if(dd == 4) buf.append("XL"); else if(dd == 5) buf.append("L"); else if(dd == 6) buf.append("LX"); else if(dd == 7) buf.append("LXX"); else if(dd == 8) buf.append("LXXX"); else if(dd == 9) buf.append("XC"); if(d == 1) buf.append("I"); else if(d == 2) buf.append("II"); else if(d == 3) buf.append("III"); else if(d == 4) buf.append("IV"); else if(d == 5) buf.append("V"); else if(d == 6) buf.append("VI"); else if(d == 7) buf.append("VII"); else if(d == 8) buf.append("VIII"); else if(d == 9) buf.append("IX"); return buf.toString(); }
整数和罗马数字的转换规则见此 http://www.mathsisfun.com/roman-numerals.html 。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。