首页 > 代码库 > Leetcode-Integer to Roman

Leetcode-Integer to Roman

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

Solution:

 1 public class Solution { 2     public String intToRoman(int num) { 3         String[] symbol = new String[]{"I","V","X","L","C","D","M"}; 4         int[] val = new int[]{1,5,10,50,100,500,1000}; 5          6         String res = ""; 7         int index = 6; 8         int symNum = num/val[index]; 9         int left = num%val[index];10         if (symNum>0)11             for (int i=0;i<symNum;i++) res += symbol[index];12         index -=2;13         while (left!=0){14             symNum = left/val[index];15             left = left%val[index];            16             if (symNum==0){17                index-=2;18                continue;             19             } else if (symNum==9) res += symbol[index]+symbol[index+2];20             else if (symNum==4) res += symbol[index]+symbol[index+1];21             else if (symNum<4) 22                 for (int i=0;i<symNum;i++) res += symbol[index];23             else {24                 res += symbol[index+1];25                 for (int i=0;i<symNum-5;i++) res += symbol[index];26             }27             index -= 2;28 29         }30 31         return res;32     }33 }

 

Leetcode-Integer to Roman