第47题 Integer to Roman

来源:互联网 发布:a 寻路算法 c 编辑:程序博客网 时间:2024/06/05 23:59

Given an integer, convert it to a roman numeral.

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

Hide Tags
 Math String





Solution in Java:
public class Solution {    public String intToRoman(int num) {        int val[] = {1000, 500, 100, 50, 10, 5, 1};        String chrs[] = {"M", "D", "C", "L", "X", "V", "I"};                String result = "";                int digi = num/val[0];        for(int j=0; j<digi; j++) result+=chrs[0];        num = num%val[0];                for(int i=2; i<7; i+=2){            digi = num/val[i];            num = num%val[i];            if(digi>8) result+=chrs[i]+chrs[i-2];            else if(digi<4){                for(int j=0; j<digi; j++)   result+=chrs[i];            }            else if(digi==4){                   result+=chrs[i]+chrs[i-1];            }            else{//5<=digi<=8                result+=chrs[i-1];                digi = digi-5;  //wrong statement: digi = digi%val[i-1]                for(int j=0; j<digi; j++)   result+=chrs[i];            }        }        return result;            }}

Note:
数组用一组值初始化:用大括号。。。。。。。
0 0