Составьте программу которая переводила бы арабские цифры в римские

Я пишу эту программу для 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 редактор формул
  • Универсальный калькулятор
  • Числовой калькулятор
  • Сфоткай и добавь свою задачу
  • Решения задач из Сканави
  • Характеристика студента онлайн
  • Диаграммы и графики онлайн
  • Конструктор программ на Паскале
  • Самые популярные материалы
  • Доска почета: лучшие пользователи

telegram

Анекдоты и фразы

«Я всегда задавал себе вопрос, почему меня никто не замечает, но когда в общаге поселили в 404 комнату… «

На сайте всего: 12

Источник: primat.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru