0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 6
1

Перевод чисел из арабских в римские и наоборот

29.11.2014, 23:58. Показов 21194. Ответов 1
Метки нет (Все метки)

всем еще раз привет) я новичек в программировании и сейчас пытаюсь сделать программу для перевода чисел из арабских в римские и наоборот. на данный момент есть код,который я не знаю как исправить,чтоб он работал( буду очень признателен человеку,который смог бы мне помочь в исправлении) всем бобра и работающих кодов)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package du3;
import java.util.*;
public class Du3 {
static int last = 2000;
static int numbers[]  = {1, 4, 5, 9, 10, 50, 100, 500, 1000 };
static String letters[]  = { "I", "IV", "V", "IX", "X", "L", "C", "D", "M"};
           public static void main (String[] args){
                System.out.println("Enter your Roman Numerals or Integer number:");
                Scanner cti = new Scanner(System.in);
                String a = cti.next();
                char c = a.charAt( 0 );
                        char a1=convertRomanToInt(romanValue);
                    if ( Character.isDigit( c ) ){
                        System.out.println("Roman value = " + integerValue);}
                    else {
                        System.out.println("Integer value = " + romanValue);
                    
                                }
    static int convertRomanToInt(String romanNumeral){
        int integerValue = 0;
        for (int i = 0; i < romanNumeral.length(); i++){
            char ch = romanNumeral.charAt( i );
            int number = letterToNumber( ch );
            if ( number == -1){
                throw new NumberFormatException("Invalid format");
            }
            if (last<number)
            number-=last- 1;
            integerValue += number;
            last = number;
        }
        return integerValue;
    }
    private static int letterToNumber(char letter){
        switch (letter) {
            case 'I':  return 1;
            case 'V':  return 5;
            case 'X':  return 10;
            case 'L':  return 50;
            case 'C':  return 100;
            case 'D':  return 500;
            case 'M':  return 1000;
            default:   return -1;
}
}
     static String convertIntegerToRoman(int number){
        String romanValue = "";
        int N = number;
        while ( N > 0 ){
        for (int i = 0; i < numbers.length; i++){
        if ( N < numbers[i] ){
        N -= numbers[i-1];
        romanValue += letters[i-1];
        break;
        }
        }
        }
        return romanValue;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2014, 23:58
Ответы с готовыми решениями:

Перевод арабских чисел в римские
Всем привет. Не получается решить задачу в С++ Кто может помогите если не сложно;. Для...

Перевод арабских чисел в римские
вообщем задание такое: написать код который из простых чисел преобразовал бы в римские, и потом...

Перевод арабских чисел в римские
Нужна программа в С для перевода арабских чисел в римские,желательно что-то попроще.

Перевод арабских чисел в римские и обратно
Составить программу для перевода арабских чисел в римские и для обратного перевода. Например 255 =...

1
115 / 100 / 52
Регистрация: 14.09.2011
Сообщений: 694
Записей в блоге: 1
30.11.2014, 15:53 2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class RomanToInt {
 
static int last = 2000;
static int numbers[]  =     {   1,   4,   5,    9,  10,  50, 100, 500, 1000 };
static String letters[]  =  { "I", "IV", "V", "IX", "X", "L", "C", "D", "M"};
           public static void main (String[] args){
               
                //ввод числа
                System.out.println("Enter your Roman Numerals or Integer number:");
                Scanner cti = new Scanner(System.in);
                String a = cti.next();
                
                //проверяем входит ли строка "a" в массив строк массива "letters"
                boolean flag = false;
                for(int i = 0;i < letters.length;i ++)
                    if(letters[i].equals(a))
                        flag = true;
                
                //flag = true значит будем иметь дело с римскими обозначением
                if(flag)
                    System.out.println("Integer value = " +letterToNumber(a) );
                else ;// тут уже самому можно доделать для перегона в римские по аналогии
    }
    private static int letterToNumber(String letter){
        if(letter.equals("I") )
                return 1;
        else if(letter.equals("IV"))
            return 4;
        else if(letter.equals("V"))
            return 5;
        else if(letter.equals("IX"))
            return 9;
        else if(letter.equals("X"))
            return 10;
        else if(letter.equals("L"))
            return 50;
        else if(letter.equals("C"))
            return 100;
        else if(letter.equals("D"))
            return 500;
        else if(letter.equals("M"))
            return 1000;
        else return -1;
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2014, 15:53
Помогаю со студенческими работами здесь

Перевод чисел из арабских в римские. Пределы int
Есть программа: #include &lt;stdio.h&gt;; #include &lt;conio.h&gt;; int roman(int,int,char); main() { int...

Перевод арабских в римские
Задача №1 Для записи римскими цифрами используются символы I, V, X, L, C, D, M, обозначающие...

Перевод из арабских цифр в римские
Задача состоит в следующем: Ввести с клавиатуры год, по его номеру вывести номер столетия римскими...

Перевод арабских цифр в римские с++
Подскажите как перевести арабские цифры в римские... Например 12345 -&gt; I II III IV V Заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru