首页 > 代码库 > 计蒜客 挑战难题 整数转换成罗马数字
计蒜客 挑战难题 整数转换成罗马数字
给定一个整数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毫秒
计蒜客 挑战难题 整数转换成罗马数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。