C# :: Aufgabe #100 :: Lösung #9
9 Lösungen

#100
Jahreszahlenkonverter für römische Schreibweise
Anfänger - C#
von BlackBird321
- 04.06.2015 um 22:36 Uhr
Bitte schreibe ein Programm, welches eine einzugebende Jahreszahl in eine römische Schreibweise umwandelt.
Beispiel:
1995 = MCMXCV
2015 = MMXV
Beispiel:
1995 = MCMXCV
2015 = MMXV
#9

von hollst (13980 Punkte)
- 30.01.2017 um 16:30 Uhr

using System; using System.Collections.Generic; using System.Linq; namespace aufgabe_100 { static class Program { static void Main() { //Aufgabenstellung umgekehrt Console.Write("Bitte Jahreszahl eingeben (Römische Zahl z. B. MMXVII für 2017): "); string input = Console.ReadLine(); Console.WriteLine(input.RomeToInt_hollst().ToString()); Console.ReadKey(); } } static class myExtensions { public static int RomeToInt_hollst(this String s) { Dictionary<string, int> d = new Dictionary<string, int>() { {"M", 1000 }, {"D", 500 }, {"C", 100 }, {"L", 50 }, {"X", 10 }, {"V", 5 }, {"I", 1 } }; int result = 0, merker = 0; for (var i = 0; i < s.Length; i++ ) { string ss = s[i].ToString().ToUpper(); if (d.Keys.Contains(ss)) { int value = d[ss]; if (merker < value) result -= merker; // Steht ein weniger wertes Zeichen vor einem höherwertigen, so hat man den Wert des niedriger wertigen Zeichens abzuziehen. // Gibt sicherlich noch weitere, uneinheitliche Regeln. else result += merker; merker = value; } else return -1; } result += merker; return result; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1