Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
以上是题目要求
想做这道题必须要明白罗马数字是怎么写的
| 阿拉伯数字 | 罗马数字 |
| 1 | I |
| 4 | IV |
| 5 | V |
| 9 | IX |
| 10 | X |
| 40 | XL |
| 50 | L |
| 90 | XC |
| 100 | C |
| 400 | CD |
| 500 | D |
| 900 | CM |
| 1000 | M |
package Q12IntegerToRoman;
import java.util.Scanner;
/**
* @author Bryan
* @since 2017/11/2 18:45
*/
public class Solution {
public static String intToRoman(int num) {
String str = "";
String[] strings = {"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
int[] values = {1,4,5,9,10,40,50,90,100,400,500,900,1000};
for (int i = 12 ; num !=0 ; i --) {
while (num >= values[i]) {
num -= values[i];
str += strings[i];
}
}
return str;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(intToRoman(num));
}
}
本文介绍了一种将整数转换为罗马数字的算法实现,适用于1到3999范围内的整数转换。通过定义特定数值对应的罗马数字符号,采用循环遍历的方式,逐步减少输入整数并累加相应的罗马数字字符。
3405

被折叠的 条评论
为什么被折叠?



