Given an integer, convert it to a Roman numeral.
Input is guaranteed to being within the range from 1 to 3999.
Topic Analysis: Numbers to Roman characters, about the relationship between Roman characters and numbers please refer to the previous Roman character and the number relationship
Algorithm analysis: There is no use of hash table, mainly traversal is not easy to use, but using an integer and character array, see AC code
Public String inttoroman (int num) {if (num <= 0) return null;int[] Nums = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; StringBuilder sb = new StringBuilder (), int i = 0;while (num > 0) {if (num/nums[i] = = 0) {//Description num magnitude not enough i++;continue;} Num-= nums[i];//finds the corresponding character in the string Sb.append (Symbols[i]);} return sb.tostring ();}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Integer to Roman