首页 > 代码库 > Integer to Roman
Integer to Roman
题目
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
方法
/*语法:
*(1)基本数字I,X,C中的任何一个连用构成数目,都不能超过三个;
* 放在大数的左边只能用一个。
(2)基本数字V ,L ,D 中的任何一个放在大数的右边采用相加的方式构成数目,只能使用一个。
(3)V 和X 左边的小数字只能用I。
(4)L 和C 左边的小数字只能用X。
(5)D 和M 左边的小数字只能用C 。
(6)在数字上加一横表示这个数字的1000倍。【因难以实现输入,暂时忽略此要求】*/
*(1)基本数字I,X,C中的任何一个连用构成数目,都不能超过三个;
* 放在大数的左边只能用一个。
(2)基本数字V ,L ,D 中的任何一个放在大数的右边采用相加的方式构成数目,只能使用一个。
(3)V 和X 左边的小数字只能用I。
(4)L 和C 左边的小数字只能用X。
(5)D 和M 左边的小数字只能用C 。
(6)在数字上加一横表示这个数字的1000倍。【因难以实现输入,暂时忽略此要求】*/
public String intToRoman(int num) { int digit; String str = ""; int n = 10; while(num > 0){ digit = num % n; switch(n){ case 10: switch(digit){ case 1: str = "I" + str; break; case 2: str = "II" + str; break; case 3: str = "III" + str; break; case 4: str = "IV" + str; break; case 5: str = "V" + str; break; case 6: str = "VI" + str; break; case 7: str = "VII" + str; break; case 8: str = "VIII" + str; break; case 9: str = "IX" + str; break; default: break; } break; case 100: digit = digit / 10; switch(digit){ case 1: str = "X" + str; break; case 2: str = "XX" + str; break; case 3: str = "XXX" + str; break; case 4: str = "XL" + str; break; case 5: str = "L" + str; break; case 6: str = "LX" + str; break; case 7: str = "LXX" + str; break; case 8: str = "LXXX" + str; break; case 9: str = "XC" + str; break; default :break; } break; case 1000: digit = digit / 100; switch(digit){ case 1: str = "C" + str; break; case 2: str = "CC" + str; break; case 3: str = "CCC" + str; break; case 4: str = "CD" + str; break; case 5: str = "D" + str; break; case 6: str = "DC" + str; break; case 7: str = "DCC" + str; break; case 8: str = "DCCC" + str; break; case 9: str = "CM" + str; break; default : break; } break; case 10000: digit = digit / 1000; switch(digit){ case 1: str = "M" + str; break; case 2: str = "MM" + str; break; case 3: str = "MMM" + str; break; } break; } num = num - digit * n/10; n = n * 10; } return str; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。