[leetcode]Integer to Roman

来源:互联网 发布:罗马2塞琉古兵种数据 编辑:程序博客网 时间:2024/05/18 01:36

Integer to Roman

题意:输入一个int,转化成roman数字输出,int取值范围是1-3999

解法:罗马数字的每一位都有唯一表示,直接枚举每一位,将其对应符号输出就可以了

public class Solution140 {

   public String intToRoman(int num) {

             String[] number=new String[4000];

             number[1]="I";

             number[2]="II";

             number[3]="III";

             number[4]="IV";

             number[5]="V";

             number[6]="VI";

             number[7]="VII";

             number[8]="VIII";

             number[9]="IX";

             number[10]="X";

             number[20]="XX";

             number[30]="XXX";

             number[40]="XL";

             number[50]="L";

             number[60]="LX";

             number[70]="LXX";

             number[80]="LXXX";

             number[90]="XC";

             number[100]="C";

             number[200]="CC";

             number[300]="CCC";

             number[400]="CD";

             number[500]="D";

             number[600]="DC";

             number[700]="DCC";

             number[800]="DCCC";

             number[900]="CM";

             number[1000]="M";

             number[2000]="MM";

             number[3000]="MMM";

             int i=num;

             String tempS="";

             int temp=i;

             int thousand=temp/1000;

             temp=temp-thousand*1000;

             int hundred=temp/100;

             temp=temp-hundred*100;

             int ten=temp/10;

             temp=temp-ten*10;

             int unit=temp;

             if (thousand>0){

                       tempS=tempS+number[thousand*1000];

             }

             if (hundred>0){

                       tempS=tempS+number[hundred*100];

             }

             if (ten>0){

                       tempS=tempS+number[ten*10];

             }

             if (unit>0){

                       tempS=tempS+number[unit];

             }       

       return tempS;

    }

}

0 0