Имеется задача конвертировать арабские цифры в римские. Хотел сделать через методы, но в итоге арабским цифрам присваиваются некорректные значения римских.
Пример:
Ввод : 10
Вывод :XC
Не могу понять, откуда подтягивается C, если количество соток = 0.
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int units = x%10;
int tens = (x%100)/10;
int hundreds = (x%1000)/100;
System.out.println(Hundreds(hundreds) + Tens(tens) + Units(units));
}
public static String Units(int units) {
String s_units="";
switch (units) {
case 1: s_units = "I";
case 2: s_units = "II";
case 3: s_units = "III";
case 4: s_units = "IV";
case 5: s_units = "V";
case 6: s_units = "VI";
case 7: s_units = "VII";
case 8: s_units = "VIII";
case 9: s_units = "IX";
}
return s_units;
}
public static String Tens(int tens) {
String s_tens="";
switch (tens) {
case 1: s_tens = "X";
case 2: s_tens = "XX";
case 3: s_tens = "XXX";
case 4: s_tens = "XL";
case 5: s_tens = "L";
case 6: s_tens = "LX";
case 7: s_tens = "LXX";
case 8: s_tens = "LXXX";
case 9: s_tens = "XC";
}
return s_tens;
}
public static String Hundreds(int hundreds) {
String s_hundreds="";
switch (hundreds) {
case 1: s_hundreds = "C";
}
return s_hundreds;
}
}
caseзабылиbreakвставить, потому у вас выбирается последнее выражениеcase 9: s_tens = "XC";на любое число в диапазоне 1-9 – tym32167 Mar 29 '22 at 17:59case 1: s_tens = "X";наcase 1: return "X";– tym32167 Mar 29 '22 at 18:01