12.整数到罗马数字
罗马数字包含以下七个字符:I、V、X、L、C、D和m
字符数值
一. 1
五. 5
X 10
L 50
C 100
D 500
M 1000
例如,罗马数字2写成II,即两个并列的1。12写XII,即X二。27写成二十七,即XX五二。
通常罗马数字中的中小数字在大数字的右边。但是也有特例,比如4不是写成IIII,而是IV。数字1在数字5的左边,表示的数字等于数字5减去数字1得到的数字4。类似地,数字9表示为IX。此特殊规则仅适用于以下六种情况:
我可以放在V(5)和X(10)的左边,代表4和9。
x可以放在L(50)和C(100)的左边,表示40和90。
c可以放在D(500)和M(1000)的左边,表示400和900。
给你一个整数,把它变成罗马数字。
资料来源:LeetCode
链接:https://leetcode-cn.com/problems/integer-to-roman
版权归领扣网所有。商业转载请联系官方授权,非商业转载请注明出处。
导入Java . util . scanner;
解决方案类{
private static int nums[]={1,4,5,9,10,40,50,90,100,400,500,900,1000 };
私有静态String[] strs={'I ',' IV ',' V ',' IX ',' X ',' XL ',' L ',' XC ',' C ',' CD ',' D ',' CM ',' M ' };
公共静态字符串intToRoman(int num){ 0
StringBuilder sb=new StringBuilder();
int index=nums . length-1;
while(num 0){ 0
while(nums[index]num){ 0
索引-;
}
sb . append(strs[index]);
num-=nums[index];
}
返回sb . ToString();
}
公共静态void main(String[]args){ 0
扫描仪输入=新扫描仪(系统输入);
while(in . HasNeXt()){ 0
system . out . println(intToRoman(in . nextint()));
}
}
}
心的方向,平底鞋过去的生活就像逆风的旅程,一片要扬帆的芦苇。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/130341.html