|
| 1 | +/** |
| 2 | + * Author: 王俊超 |
| 3 | + * Date: 2015-06-30 |
| 4 | + * Time: 14:28 |
| 5 | + * Declaration: All Rights Reserved !!! |
| 6 | + */ |
| 7 | +public class Solution2 { |
| 8 | + /** |
| 9 | + * <pre> |
| 10 | + * Given an integer, convert it to a roman numeral. |
| 11 | + * |
| 12 | + * Input is guaranteed to be within the range from 1 to 3999. |
| 13 | + * |
| 14 | + * 罗马数字的表示: |
| 15 | + * 个位数举例 |
| 16 | + * (I, 1) (II, 2) (III, 3) (IV, 4) (V, 5) (VI, 6) (VII, 7) (VIII, 8) (IX, 9) |
| 17 | + * |
| 18 | + * 十位数举例 |
| 19 | + * (X, 10) (XI, 11) (XII, 12) (XIII, 13) (XIV, 14) (XV, 15) (XVI, 16) |
| 20 | + * (XVII, 17) (XVIII, 18) (XIX, 19) (XX, 20) (XXI, 21) (XXII, 22) |
| 21 | + * (XXIX, 29) (XXX, 30) (XXXIV, 34) (XXXV, 35) (XXXIX, 39) (XL, 40) |
| 22 | + * (L, 50) (LI, 51) (LV, 55) (LX, 60) (LXV, 65) (LXXX, 80) (XC, 90) |
| 23 | + * (XCIII, 93) (XCV, 95) (XCVIII, 98) (XCIX, 99) |
| 24 | + * |
| 25 | + * 百位数举例 |
| 26 | + * (C, 100) (CC, 200) (CCC, 300) (CD, 400) (D, 500) (DC, 600) (DCC, 700) |
| 27 | + * (DCCC, 800) (CM, 900) (CMXCIX, 999) |
| 28 | + * |
| 29 | + * 千位数举例 |
| 30 | + * (M, 1000) (MC, 1100) (MCD, 1400) (MD, 1500) (MDC, 1600) (MDCLXVI, 1666) |
| 31 | + * (MDCCCLXXXVIII, 1888) (MDCCCXCIX, 1899) (MCM, 1900) (MCMLXXVI, 1976) |
| 32 | + * (MCMLXXXIV, 1984) (MCMXC, 1990) (MM, 2000) (MMMCMXCIX, 3999) |
| 33 | + * |
| 34 | + * 题目大意: |
| 35 | + * 输入一个数字,将它转成一个罗马数字,输入的数字在[1, 3999]之间 |
| 36 | + * |
| 37 | + * </pre> |
| 38 | + * |
| 39 | + * @param num |
| 40 | + * @return |
| 41 | + */ |
| 42 | + public String intToRoman(int num) { |
| 43 | + |
| 44 | + final int[] radix = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; |
| 45 | + final String[] symbol = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; |
| 46 | + String roman = ""; |
| 47 | + for (int i = 0; num > 0; ++i) { |
| 48 | + int count = num / radix[i]; |
| 49 | + num %= radix[i]; |
| 50 | + for (; count > 0; --count) { |
| 51 | + roman += symbol[i]; |
| 52 | + } |
| 53 | + } |
| 54 | + return roman; |
| 55 | + } |
| 56 | +} |
0 commit comments