Integer to Roman

Given an integer, convert it to a roman numeral.

 1 public class Solution {
 2     public String intToRoman(int num) {
 3         char[] sym = {'I','V','X','L','C','D','M'};
 4         int scale = 1000;
 5         StringBuilder sb = new StringBuilder();
 6         for(int i=6;i>=0;i=i-2){
 7             int digit = num/scale;
 8             if(digit>0){
 9                 if(digit<=3){
10                     for(int j=0;j<digit;j++){
11                         sb.append(sym[i]);
12                     }
13                 }
14                 else if(digit==4){
15                     sb.append(sym[i]);
16                     sb.append(sym[i+1]);
17                 }
18                 else if(digit==5){
19                     sb.append(sym[i+1]);
20                 }
21                 else if(digit<=8){
22                     sb.append(sym[i+1]);
23                     for(int j=0;j<digit-5;j++)
24                         sb.append(sym[i]);
25                 }
26                 else if(digit==9){
27                     sb.append(sym[i]);
28                     sb.append(sym[i+2]);
29                 }
30             }
31             num %= scale;
32             scale /=10;
33         }
34         return sb.toString();
35     }
36 }
View Code

 

posted @ 2014-02-06 05:01  krunning  阅读(104)  评论(0编辑  收藏  举报