标签:
给定一个整数num,( 1<=num<=3999),将整数转换成罗马数字。
如1,2,3,4,5对应的罗马数字分别位I,II,III,IV,V等。
格式:
第一行输入一个整数,接下来输出对应的罗马数字。
提示:
罗马数字的常识见此链接,对做题有帮助哦~尤其是表示方法。
http://baike.baidu.com/link?url=injU8M4bAoc2zRZQ1GtgrfvuzCJO9PLnq6fpQGJLenakbzo-rS8p-qsYHR_81-aN
123
CXXIII
========================================
第一次code:
1 import java.util.Scanner; 2 public class Main 3 { 4 public static void main(String[] args) 5 { 6 Scanner input = new Scanner(System.in); 7 System.out.println(run(input.nextInt())); 8 } 9 public static String run(int n) 10 { 11 String a="",b="",c="",d="",e=""; 12 /** 13 * 轉化千位數 14 */ 15 if((n/1000)%10 > 0) 16 { 17 for(int i=0;i<(n/1000)%10;i++) 18 { 19 d +="M"; 20 } 21 } 22 /** 23 * 轉換百位數 24 */ 25 if((n/100)%10 > 0) 26 { 27 switch((n/100)%10) 28 { 29 case 1: c="C";break; 30 case 2: c="CC";break; 31 case 3: c="CCC";break; 32 case 4: c="CD";break; 33 case 5: c="D";break; 34 case 6: c="DC";break; 35 case 7: c="DCC";break; 36 case 8: c="DCCC";break; 37 case 9: c="CM";break; 38 } 39 } 40 /** 41 * 轉化十位數 42 */ 43 if((n/10)%10 > 0) 44 { 45 switch((n/10)%10) 46 { 47 case 1: b="X";break; 48 case 2: b="XX";break; 49 case 3: b="XXX";break; 50 case 4: b="XL";break; 51 case 5: b="L";break; 52 case 6: b="LX";break; 53 case 7: b="LXX";break; 54 case 8: b="LXXX";break; 55 case 9: b="XC";break; 56 } 57 } 58 /** 59 * 轉換個位數 60 */ 61 if(n%10 > 0) 62 { 63 switch(n%10) 64 { 65 case 1: a="I";break; 66 case 2: a="II";break; 67 case 3: a="III";break; 68 case 4: a="IV";break; 69 case 5: a="V";break; 70 case 6: a="VI";break; 71 case 7: a="VII";break; 72 case 8: a="VIII";break; 73 case 9: a="IX";break; 74 } 75 } 76 e = d + c + b + a; 77 return e; 78 } 79 }
时间效率: 43毫秒
标签:
原文地址:http://www.cnblogs.com/enginehome/p/5809845.html