首页 > 学院 > 开发设计 > 正文

LeetCode之路——Integer to Roman

2019-11-06 08:18:43
字体:
来源:转载
供稿:网友

题目要求:将整数转化成相对应的罗马数。要求:1——3999. 贴上代码:

package leetcode;public class IntegertoRoman { public static void main(String[] args) { // TODO Auto-generated method stub Solution_ITR solu = new Solution_ITR(); System.out.PRintln(solu.intToRoman(1)); }}class Solution_ITR { public String intToRoman(int num) { String[][] str ={{"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}, {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}, {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}, {"M", "MM", "MMM"}}; String result="";//用来接收转换后的罗马字符 int i=3,j=0,k=1000;//i为行,j为列 //System.out.println("i="+i+" j="+j+" k="+k+" num="+num+" result="+result); while(num!=0) { j=num/k; if(j<1) { k/=10; i--;//行数减一 //System.out.println("i="+i+" j="+j+" k="+k+" num="+num+" result="+result); } else { num-=j*k; j--; result+=str[i--][j]; k/=10; //System.out.println("i="+i+" j="+j+" k="+k+" num="+num+" result="+result); } } return result; }}/*1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};1000~3000: {"M", "MM", "MMM"}.*/

总结:这题相对来说比较简单,注意一下数组首元素从0开始!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表