12. 整数转罗马数字

package leetcode;

import java.util.HashMap;

public class demo_12 {
    public String intToRoman(int num) {
        String s="";
        HashMap<Integer, String> hm= new HashMap<Integer, String>();
        hm.put(1,"I");
        hm.put(5, "V");
        hm.put(10, "X");
        hm.put(50, "L");
        hm.put(100, "C");
        hm.put(500, "D");
        hm.put(1000, "M");
        hm.put(4, "IV");
        hm.put(9, "IX");
        hm.put(40, "XL");
        hm.put(90, "XC");
        hm.put(400, "CD");
        hm.put(900, "CM");
        int[] key= {1,4,5,9,10,40,50,90,100,400,500,900,1000};
        int count=0;
        while(num>0) {
            for(int i=0;i<key.length;i++) {
                if(num>=1000) {
                    count=num/1000;
                    for(int j=0;j<count;j++) {
                        s=s+hm.get(key[key.length-1]);
                    }
                    num=num-count*key[key.length-1];
                    break;
                }
                if(num<key[i]) {
                    count = num/key[i-1];
                    for(int j=0;j<count;j++) {
                        s=s+hm.get(key[i-1]);
                    }
                    num=num-count*key[i-1];
                    break;
                }
            }
        }
        System.out.println(s);
        return s;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_12 d12=new demo_12();
        d12.intToRoman(58);
    }

}

 

上一篇:移入显示div用js实现


下一篇:centos7环境下php网站通过webshell安全扫描工具对系统做检测