Это домашнее задание, с которым у меня возникают проблемы.
Мне нужно сделать целое число с конвертером Roman Numeral, используя метод. Позже, я должен использовать программу для записи от 1 до 3999 в римских цифрах, поэтому жесткое кодирование отсутствует. Мой код ниже очень голые кости; это базовый цикл ввода-вывода с возможностью выхода с использованием пакета для getIntegerFromUser
, который мы создали в классе.
Есть ли способ присвоить значения строкам, а затем добавить их вместе при вызове метода?
Обновление: У меня есть некоторый псевдокод от моего профессора, чтобы помочь мне, и, хотя я понимаю, что он пытается сказать, у меня возникают проблемы с if
s. Будут ли мне нужны многие, многие if
заявления, чтобы мой конвертер правильно обрабатывал форматирование чисел в римском формате или есть способ, которым я могу сделать это с большей эффективностью? Я обновил свой код, чтобы отразить мой метод-заполнитель.
Обновление (28 октября 2012 г.): Я работал. Вот что я в итоге использовал:
public static String IntegerToRomanNumeral(int input) {
if (input < 1 || input > 3999)
return "Invalid Roman Number Value";
String s = "";
while (input >= 1000) {
s += "M";
input -= 1000; }
while (input >= 900) {
s += "CM";
input -= 900;
}
while (input >= 500) {
s += "D";
input -= 500;
}
while (input >= 400) {
s += "CD";
input -= 400;
}
while (input >= 100) {
s += "C";
input -= 100;
}
while (input >= 90) {
s += "XC";
input -= 90;
}
while (input >= 50) {
s += "L";
input -= 50;
}
while (input >= 40) {
s += "XL";
input -= 40;
}
while (input >= 10) {
s += "X";
input -= 10;
}
while (input >= 9) {
s += "IX";
input -= 9;
}
while (input >= 5) {
s += "V";
input -= 5;
}
while (input >= 4) {
s += "IV";
input -= 4;
}
while (input >= 1) {
s += "I";
input -= 1;
}
return s;
}