Форум программистов, компьютерный форум CyberForum.ru

Перевод римской записи числа в арабскую - C++

Восстановить пароль Регистрация
 
MikuruAsahina
0 / 0 / 0
Регистрация: 28.05.2013
Сообщений: 2
28.05.2013, 14:25     Перевод римской записи числа в арабскую #1
Я знаю, что подобных тем было предостаточно, но там всё было как-то сложновато для понимания для меня, как для начинающей.
Поэтому я решила пойти своим путём, в задачке про перевод римской записи числа в арабскую.
вот код:
C++
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
61
62
63
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <sstream>
 
using namespace std;
 
int main()
{
    char str[256], p;
    printf("Vvedite rimskoe chislo\n");
    cin.getline(str, 256);
    int l=strlen(str),m,i,a[20], sum;
    for (i=1;i<=l;i++)
    {
        p=str[l-i];
        cout<<p<<endl;
        switch (p)
        {
            case 'I':
                m=1;
                break;
            case 'V':
                m=5;
                break;
            case 'X':
                m=10;
                break;
            case 'L':
                m=50;
                break;
            case 'C':
                m=100;
                break;
            case 'D':
                m=500;
                break;
            case 'M':
                m=1000;
                break;
        }
        a[l-i]=m;
        printf("%i) %i\n", l-i, a[l-i]);
    }
    sum=0;
    for (i=0;i<=l-1;i++)
    {
        if (a[i+1]>a[i])
        {
            a[i]=a[i+1]-a[i];
            a[i+1]=0;
        }
        
    }
    
    for (i=0;i<l;i++)
    {
        printf("%i) %i\n", i, a[i]);
        sum=sum+a[i];
    }
    printf("sum = %i\n", sum);
    system("pause");
}
Но я столкнулась с одной загвоздкой: я перевела "буквы" в числа и заполнила этими числами матрицу.
Только вот в случаях с XCIX или XIV (к примеру) у меня не получается эту "матрицу" преобразовать в число, если выполняются те или иные условия(т.е. "если 1<5 то m=5-1, к примеру). ... Такое ощущение, что мысли мои крутятся каждый раз где-то рядом, но всё равно не получается.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2013, 14:25     Перевод римской записи числа в арабскую
Посмотрите здесь:

Бинарные числа! Перевод простого числа в бираное и расчет. C++
Задано два натуральных числа: m и n. Определить, сколько цифр содержится в десятичной записи числа m^n. C++
C++ Перевод строки при записи в файл
C++ Перевод строк при их записи в текстовый файл
Перевод текстовой записи формулу в читаемую функцию. C++
C++ Перевод числа из одной с.с. в другую, манипуляции с цифрами числа
C++ Перевод математической записи в запись на С++
Есть в записи числа m цифры, которые совпадают с цифрами в записи числа n C++
C++ Даны натуральные числа n, k. Проверить, есть ли в записи числа nk цифра m
Для натурального числа определить истинность предиката «все цифры в записи числа равны» C++
Перевод числовой записи в словесную и обратно C++
C++ Проверить, есть ли в записи числа m цифры, совпадающие с цифрами в записи числа n

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru