LeetCode――Integer to Roman

2015-07-24 05:49:53 · 作者: · 浏览: 6

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
下面的程序用的是穷举,即把上面的表格用if else 写了一遍。当然这课表也是有规律的,如1-3开头的是重复,4-5截取后一个字符,6-8又是依次添一个尾字符。

	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
  
   
整数和罗马数字的转换规则见此 http://www.mathsisfun.com/roman-numerals. html