Я пишу эту программу для Java-класса, который у меня есть. Задача этой программы — преобразовать введенное арабское число в римское число.
import java.util.Scanner; public class RomanDigit < public static void main(String arg [])< System.out.println(«Please enter a number to be converted to roman numerals: «); Scanner scan = new Scanner (System.in); int number = scan.nextInt(); String romanDigit = «»; if (number < 0 || number >3999) < System.out.println( «This number cannot be converted»); >else < System.out.println(«The number you input, converted into roman numerals is: » + romanDigit); System.out.println(convert(number)); >> public static String romanDigit(int n, String one, String five, String ten)< if(n >= 1) < if(n == 1) < return one; >else if (n == 2) < return one + one; >else if (n == 3) < return one + one + one; >else if (n==4) < return one + five; >else if (n == 5) < return five; >else if (n == 6) < return five + one; >else if (n == 7) < return five + one + one; >else if (n == 8) < return five + one + one + one; >else if (n == 9) < return one + ten; >> return «»; > public static String convert(int number) < String romanOnes = romanDigit( number%10, «I», «V», «X»); number /=10; String romanTens = romanDigit( number%10, «X», «L», «C»); number /=10; String romanHundreds = romanDigit(number%10, «C», «D», «M»); number /=10; String romanThousands = romanDigit(number%10, «M», «», «»); String result = romanThousands + romanHundreds + romanTens + romanOnes; return result; >>
Я отредактировал код сейчас для данных предложений.
как сделать … преобразование арабских цифр в римские в Excel
Я заметил, что мне не хватает числа / = 10; заявление в конце. Я почему-то удалил его раньше и забыл поставить обратно. Кажется, теперь все работает нормально. Причина, по которой он не работал, кроме оператора number / = 10, заключалась в том, что у меня был оператор If не в том месте.
Miguel 20 Янв 2018 в 16:59
Какой тест вы использовали? Я только что проверил ввод 5 и получил результат The number you input, converted into roman numerals is: DLV — что, очевидно, не является правильным ответом.
Источник: question-it.com
Перевод арабских цифр в римские
Имеется задача конвертировать арабские цифры в римские. Хотел сделать через методы, но в итоге арабским цифрам присваиваются некорректные значения римских. Пример:
Ввод : 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; > >
Отслеживать
Конвертер в римские числа. Что лучше 2 массива или 1 объект? JavaScript
Quark-Coder
задан 29 мар 2022 в 17:26
Quark-Coder Quark-Coder
43 9 9 бронзовых знаков
«совсем не то, что должно» — очень плохое описание проблемы
29 мар 2022 в 17:27
29 мар 2022 в 17:30
Это так бухгалетера разговаривают неопытные: я не трогаль и оно не работает. Пишите подробно что ожидалось, что выводит. что конкретно не так
29 мар 2022 в 17:35
Возможный дубликат вопроса: Как и какими средствами находить ошибки в коде Java?
29 мар 2022 в 17:35
вы в своих case забыли break вставить, потому у вас выбирается последнее выражение case 9: s_tens = «XC»; на любое число в диапазоне 1-9
29 мар 2022 в 17:59
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вы в своих case забыли break вставить, потому у вас выбирается последнее выражение
case 9: s_tens = «XC»;
на любое число в диапазоне 1-9
я бы в вашем коде заменил все
case 1: s_tens = «X»;
case 1: return «X»;
Отслеживать
ответ дан 29 мар 2022 в 18:09
32.1k 2 2 золотых знака 28 28 серебряных знаков 72 72 бронзовых знака
Чето как то у вас всё сложно больно. Я бы попробовал по другому решить. Я бы просто отнимал из числа римские значения, пока число в 0 не превратилось.
Ну вот пример на C#, но на java там почти тож самое будет
public string IntToRoman(int num) < var keys = new string[] < «M», «CM», «D», «CD», «C», «XC», «L», «XL», «X», «IX», «V», «IV», «I» >; var vals = new int[] < 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 >; StringBuilder ret = new StringBuilder(); int ind = 0; while(ind < keys.Length) < while(num >= vals[ind]) < var d = num / vals[ind]; num = num % vals[ind]; for(int i=0; iind++; > return ret.ToString(); >
Console.WriteLine(IntToRoman(28)); Console.WriteLine(IntToRoman(128)); Console.WriteLine(IntToRoman(628)); Console.WriteLine(IntToRoman(1628));
XXVIII CXXVIII DCXXVIII MDCXXVIII
Источник: ru.stackoverflow.com
Составьте программу которая переводила бы арабские цифры в римские
Новое в библиотеке
- Проблемы изучения математики в 3 кла.
- Проверить будет ли число простым — P.
- Сумма цифр числа в Python
- Пузырьковая сортировка в Python
- Алгоритм Эвклида для НОД в Python
- Все материалы библиотеки
Лучшее на сайте
- Онлайн-решебник задач
- MathPad -математический блокнот
- LaTeX+MarkDown редактор формул
- Универсальный калькулятор
- Числовой калькулятор
- Сфоткай и добавь свою задачу
- Решения задач из Сканави
- Характеристика студента онлайн
- Диаграммы и графики онлайн
- Конструктор программ на Паскале
- Самые популярные материалы
- Доска почета: лучшие пользователи
Анекдоты и фразы
«Я всегда задавал себе вопрос, почему меня никто не замечает, но когда в общаге поселили в 404 комнату… «
На сайте всего: 12
Источник: primat.org