Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.01.2016
Сообщений: 26

Задачка на системы счисления

20.11.2016, 01:03. Показов 781. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать 2 метода: первый переводит число в диапазоне от 1 до 100 вкл. из десятичной системы счисления в римскую (эти символы лежать в диапазоне 8844-8857 в dec и 2160-216D в hex), а второй метод - наоборот. Ещё есть условие, чтобы не было brute force (String[] numbers = {"I", "II", "III", "IV", "V", ..., "XCV", "XCVI", "XCVII", ..., "C"}. Нужен какой-то алгоритм.
Вот stubs:
Java
1
2
public static int roman2Decimal(String s) { return 0;}
public static String decimal2Roman(int x) { return null; }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.11.2016, 01:03
Ответы с готовыми решениями:

Как перевести число с 16 системы счисления в 2 систему счисления (программа)
Как перевести число с 16 системы счисления в 2 систему счисления ? (программа).

Задачка на системы счисления
Найдите значение Y. 20205 - 3337 = Y16 Ответ: ___16 Помогите, пожалуйста. Как это можно решить? Перевести числа в десятичную,...

Задачка по переводу из 10-й системы счисления
Подскажите пожалуйста, как в MatCAD число 965 в 10 СС перевести в 2-ю, 8-ю, 16-ю СС? Заранее спасибо!

2
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
20.11.2016, 18:05
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
    public static Object[][] map = {{1000, "\u216f"}, {900, "\u216d\u216f"},
                                    {500, "\u216e"}, {400, "\u216d\u216e"},
                                    {100, "\u216d"}, {90, "\u2169\u216d"},
                                    {50, "\u216c"}, {40, "\u2169\u216c"},
                                    {10, "\u2169"}, {9, "\u2160\u2169"},
                                    {5, "\u2164"}, {4, "\u2160\u2164"},
                                    {1, "\u2160"}};
 
    public static String decimal2Roman(int n){
        StringBuilder result = new StringBuilder();
        for (Object[] item : map)
            while (n - (Integer) item[0] >= 0){
                result.append((String) item[1]);
                n -= (Integer) item[0];
            }
        return result.toString();
    }
    
    public static int roman2Decimal(String s) {
        int result = 0;
        for (Object[] item : map){
            while (s.startsWith((String) item[1])){
                result += (Integer) item[0];
                s = s.replaceFirst((String) item[1], "");
            }
        }
        return result;
    }
    
    public static void main(String[] args) throws Exception{
        System.out.println(decimal2Roman(2016));
        System.out.println(roman2Decimal("ⅯⅯⅩⅤⅠ"));
    }
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.11.2016, 13:04
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
 
public static void main(String[] args) {
        IntStream.range(1, 4000).forEach(i -> {
            String s = toRoman(i);
            System.out.print(s + " ");
            System.out.println(toInt(s));
        });
 
    }
 
    public static String toRoman(int n) {
        return String.join("", Collections.nCopies(n, "I"))
                .replace("IIIII", "V")
                .replace("IIII", "IV")
                .replace("VV", "X")
                .replace("VIV", "IX")
                .replace("XXXXX", "L")
                .replace("XXXX", "XL")
                .replace("LL", "C")
                .replace("LXL", "XC")
                .replace("CCCCC", "D")
                .replace("CCCC", "CD")
                .replace("DD", "M")
                .replace("DCD", "CM");
    }
 
    public static int toInt(String roman) {
        return (int) evaluateNextRomanNumeral(roman, roman.length() - 1, 0);
    }
 
    private static double evaluateNextRomanNumeral(String roman, int pos, double rightNumeral) {
        if(pos < 0)
            return 0;
        char ch = roman.charAt(pos);
        double value = Math.floor(Math.pow(10, "IXCM".indexOf(ch))) + 5 * Math.floor(Math.pow(10, "VLD".indexOf(ch)));
        return value * Math.signum(value + 0.5 - rightNumeral) + evaluateNextRomanNumeral(roman, pos - 1, value);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2016, 13:04
Помогаю со студенческими работами здесь

Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления
1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления. Для а) и б)...

Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления
1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления. 2. Перевести...

Перевести число из не позиционной системы счисления в двоичную или десятичную системы счисления.
Написать программу, которая переводит число из непозиционной системы счисления в двоичную или десятичную системы счисления.

Системы счисления. Перевод из одной системы счисления в другую.
Задание: Написать программу на языке С++ или Turbo Pascal для переведа числа, представленного в системе счисления с основанием S, в...

Перевод из одной системы счисления в другое системы счисления
Здравствуйте, Господа!8-) Бывает такая необходимость, когда нужно перевести какое-то число в другое представление, вот я решил...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru