Integer to Roman LeetCode Java

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

代码

 1 public class IntegerToRoman {
 2 
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         int num = 187;
 6         System.out.println(intToRoman(num));
 7     }
 8 
 9     public static String intToRoman(int num) {
10         int radix[] = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
11         String symbol[] = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
12         String roman = "";
13         for (int i = 0; num > 0; ++i) {
14             int count = num / radix[i];
15             num %= radix[i];
16             for (; count > 0; --count)
17                 roman += symbol[i];
18         }
19         return roman;
20     }
21 
22 }

看到有用递归的方法(转载)

 1  public static String intToRoman2(int num) {
 2                   if(num>=1000) return "M"+intToRoman(num-1000);
 3                   if(num>=900) return "CM"+intToRoman(num-900);
 4                   if(num>=500) return "D"+intToRoman(num-500);
 5                   if(num>=400) return "CD"+intToRoman(num-400);
 6                   if(num>=100) return "C"+intToRoman(num-100);
 7                   if(num>=90) return "XC"+intToRoman(num-90);
 8                   if(num>=50) return "L"+intToRoman(num-50);
 9                   if(num>=40) return "XL"+intToRoman(num-40);
10                   if(num>=10) return "X"+intToRoman(num-10);
11                   if(num>=9) return "IX"+intToRoman(num-9);
12                   if(num>=5) return "V"+intToRoman(num-5);
13                   if(num>=4) return "IV"+intToRoman(num-4);
14                   if(num>=1) return "I"+intToRoman(num-1);
15                   return "";
16              }
原文地址:https://www.cnblogs.com/ncznx/p/9195594.html