Ocena użytkownikóww: ***** / 10
Nadesłany przez Kamil Dębowski, 06 marca 2011 19:15
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
rzymskie_1_c.cpp:
// Zamiana liczby rzymskiej na arabska
// www.algorytm.org
#include<cstdio>
#include<conio.h>
#include<map>
using namespace std;
map<char,int> wart;
char s[50];
int i,res,a,last;
int main()
{
wart['I']=1;
wart['V']=5;
wart['X']=10;
wart['L']=50;
wart['C']=100;
wart['D']=500;
wart['M']=1000;
scanf("%s", s);
i=strlen(s);
while(i--) // idziemy od prawej
{
a=wart[s[i]];
if (a>=last) // jesli mamy "wieksza litere" to jej wartosc dodajemy"
{
last=a;
res+=a;
}
else res-=a; // jesli mniejsza to odejmujemy
}
printf("%d", res);
getch();
return 0;
}