Задать вопрос
@turdubekov
Студент

Как написать калькулятор который умеет работать с римскими цифрами?

Привет!
Есть задание: написать калькулятор
* Калькулятор умеет работать с арабскими и римскими числами
* должен принимать на вход числа от 1 до 10 включительно, не более
* Калькулятор умеет работать только с целыми числами
Мой говно "code"
import java.util.Scanner;

public class MainClass {
    public static void main(String[] args) {
        RomeNumbers rome = new RomeNumbers();
        int value1 = 0;
        int value2 = 0;
        String operation = null;

        System.out.println("Введите 2  целых числа: ");
        Scanner scanner = new Scanner(System.in);
        if (value1 > 0 || value1 < 10) {
            value1 = scanner.nextInt();
            operation = scanner.next();
            value2 = scanner.nextInt();
        }
        if (operation.equals("+")) {
            System.out.println(value1 + value2);
        }

        if (operation.equals("-")) {
            System.out.println(value1 - value2);
        }

        if (operation.equals("*")){
            System.out.println( value1 * value2);
        }

        if (operation.equals("/")){
            System.out.println(value1 / value2);
        }
        else {
            System.out.println("error!");
        }

    }
}

public class RomeNumbers {
    int I = 1;
    int II = 2;
    int III = 3;
    int IV = 4;
    int V = 5;
    int VI = 6;
    int VII = 7;
    int VIII = 8;
    int IX = 9;
    int X = 10;


}

Вопрос: Как быть с римскими числами и как вообще это все сделать по человечески?
  • Вопрос задан
  • 16919 просмотров
Подписаться 3 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Академия Эдюсон
    Java-разработчик: тариф Базовый
    8 месяцев
    Далее
  • Skillbox
    Профессия Java-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
irishmann
@irishmann
Научись пользоваться дебаггером
В твоем классе не учитываются L, C, D, M. Тебе нужно сначала перевести в арабские цифры, произвести операцию, затем результат переводить обратно в римские цифры. Вот тут посмотри.
Ответ написан
Комментировать
@EmelyanovKonstantin
GIS архитектура, аналитика, разработка
L, C, D, M не надо на вход. Только на выход.
* должен принимать на вход числа от 1 до 10 включительно, не более

Получайте входную строку как String
String value1;
Сканер должен ждать тогда не .nextInt();, а nextLine(); чтобы прочитать строку.
А потом парсите его по вашим правилам:
int num1 = toArabic(value1);
.....
public int toArabic(String value){

   if(value.equals("I") return 1;
   if(value.equals("II") return 2;
   и т.д.

}
Ответ написан
@Bonce
Уже был такой вопрос недавно. Поищи на тостере. Там готовый код скидывали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Казань
от 75 000 ₽
ИТРУМ Ростов-на-Дону
от 75 000 ₽
СофтМоушен Санкт-Петербург
от 150 000 до 220 000 ₽