import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个50以下的数字: ");
if (scanner.hasNextInt()) {
int number = scanner.nextInt();
if (number >= 1 && number <= 50) {
String romanNumeral = toRoman(number);
System.out.println("对应的罗马数字是:" + romanNumeral);
} else {
System.out.println("请输入1到50之间的数字。");
}
} else {
System.out.println("请输入有效的整数。");
}
scanner.close();
}
public static String toRoman(int number) {
if (number < 1 || number > 50) {
throw new IllegalArgumentException("数字必须在1到50之间。");
}
Map<Integer, String> romanNumerals = new HashMap<>();
romanNumerals.put(1, "I");
romanNumerals.put(4, "IV");
romanNumerals.put(5, "V");
romanNumerals.put(9, "IX");
romanNumerals.put(10, "X");
romanNumerals.put(40, "XL");
romanNumerals.put(50, "L");
StringBuilder result = new StringBuilder();
int[] keys = {50, 40, 10, 9, 5, 4, 1}; // 从大到小排列的数字
for (int key : keys) {
while (number >= key) {
result.append(romanNumerals.get(key));
number -= key;
}
}
return result.toString();
}
}