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;
}
}