12.整数回転ローマ数字-LeetCode 12-java

1002 ワード

タイトル:ローマ数字には、I、V、X、L、C、D、Mの7つの文字が含まれています.
文字値I 1 V 5 X 10 L 50 C 100 D 500 M 1000は、例えば、ローマ数字2をIIと書くと、2つの並列の1となる.12はXIIと書きます.つまりX+IIです.27 XXVIIと書くと、XX+V+IIとなります.
通常、ローマ数字の中で小さい数字は大きな数字の右側にあります.しかし、例えば4はIIIではなくIVと書くという特例もある.数字1は数字5の左側にあり、表す数は大数5から小数1を減らした数値4に等しい.同様に、数字9はIXとして表される.この特殊なルールは、次の6つの場合にのみ適用されます.
IはV(5)とX(10)の左側に置いて4と9を表すことができる.XはL(50)とC(100)の左側に置いて40と90を表すことができる.CはD(500)とM(1000)の左側に置いて400と900を表すことができる.整数を与え、ローマ数字に変換します.入力は1~3999の範囲であることを確認します.
 
public class LeetCode_12 {

	public String intToRoman(int num) {
		int[]nums= {1000,900,500,400,100,90,50,40,10,9,5,4,1};//13 
		String[] keys= {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
		StringBuffer str=new StringBuffer();
		for(int i=0;i=nums[i]) {
				num-=nums[i];
				str=str.append(keys[i]);
			}			
		}
		return str.toString();
    }
}