Römische Zahlen --> Dezimalzahlen
-
suche nen algorythmus um römische Zahlen in Dezimalzahlen umzuwandeln
hab bei der boardsuche nur algorythmen für C++ gefunden, die werfen aber nen haufen fehler in meinem compiler auf.
danke schomla
wNg ICE
-
google hilft dir da auch ganz gut...
-
ne, google hilfd da auch nicht gut
weil ich google schon damit gequält hab
-
Diesen Java-Code mal in C++-Form zu bringen sollte nicht so schwer sein, war die 3. Seite bei Google
private static int roman2decimal (String src) { int i, result, digits[]; digits = new int[src.length()]; for (i=0; i<digits.length; i++) { switch (src.charAt(i)) { case 'I': digits[i] = 1; break; case 'V': digits[i] = 5; break; case 'X': digits[i] = 10; break; case 'L': digits[i] = 50; break; case 'C': digits[i] = 100; break; case 'D': digits[i] = 500; break; case 'M': digits[i] = 1000; break; } } result = 0; for (i=0; i<digits.length-1; i++) { if(digits[i]<digits[i+1]) { result-=digits[i]; } else { result+=digits[i]; } } result += digits[i]; return result; }
MfG SideWinder
-
hab das mal irgendwann gemacht, und zwar so:
typedef struct hilf{ int z; char a,b; }HILF; void main() { int zahl=0,i,stelle=0; char erg[20]; bool weiter=true; HILF h[]= { {1,'i',0}, {4,'i','v'},{5,'v',0}, {9,'i','x'},{10,'x',0}, {40,'x','l'},{49,'i','l'},{50,'l',0}, {90,'x','c'},{99,'i','c'},{100,'c',0}, {400,'c','d'},{490,'x','d'},{499,'i','d'},{500,'d',0}, {900,'c','m'},{990,'x','m'},{999,'i','m'},{1000,'m',0} }; if (scanf("%i",&zahl)) { while (zahl>0) { for(i=18;i>=0 && weiter;i--) if(h[i].z<=zahl) { erg[stelle++]=h[i].a; if (h[i].b) erg[stelle++]=h[i].b; zahl-=h[i].z; weiter=false; } weiter=true; } erg[stelle]=0; printf("Ergebnis: %s\n",erg); system("cls"); } }