给定一个整数num,( 1<=num<=3999),将整数转换成罗马数字。
如1,2,3,4,5对应的罗马数字分别位I,II,III,IV,V等。
格式:
第一行输入一个整数,接下来输出对应的罗马数字。
import java.util.*;
public class Main {
public static StringBuffer res = new StringBuffer();
public static int number;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
number = sc.nextInt();
int i;
i = number / 1000;
number = number % 1000;
for (int j = 0; j < i; j++)
res = res.append("M");
fun(900, "CM", "D", "CD", "C");
fun(90, "XC", "L", "XL", "X");
fun(9, "IX", "V", "IV", "I");
System.out.println(res);
}
public static void fun(int n, String a, String b, String c, String d) {
int i;
i = number / n;
switch (i) {
case 1:
res.append(a);
number = number % n;
break;
default:
i = number / ((n / 9) * 5);
switch (i) {
case 1:
res.append(b);
number = number % ((n / 9) * 5);
break;
default:
i = number / ((n / 9) * 4);
if (i == 1) {
res.append(c);
number = number % ((n / 9) * 4);
return;
}
break;
}
i = number / (n / 9);
number = number % (n / 9);
for (int j = 0; j < i; j++)
res.append(d);
break;
}
}
}