C# :: Aufgabe #100 :: Lösung #6

9 Lösungen Lösungen öffentlich
#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
#6
vote_ok
von Mentalist999 (680 Punkte) - 19.08.2015 um 17:31 Uhr
Erweiterbare Loop. Kürzer und schneller als Pocki's Lösung. *Dance*

Quellcode ausblenden C#-Code
        enum Ronum
        {
            I = 1,
            V = 5,
            X = 10,
            L = 50,
            C = 100,
            D = 500,
            M = 1000,
            IↃ = 500,
            ↀ = 1000,
            ↁ = 5000,
            ↂ = 10000,
            CCCIↃↃↃ = 50000,
            IↃↃↃↃ = 100000,
            CCCCIↃↃↃↃ = 500000,
            CCCIↃↃↃↂↂↂↀↁIↃLXVII = 1000000
        }
        public static string ToRoman(int Value)
        {
            string Result = "";

            foreach (Ronum Ronum in ((IEnumerable<Ronum>)Enum.GetValues(typeof(Ronum))).Reverse<Ronum>())
            {
                Result += (Value / (int)Ronum < 4) 
                            ? String.Concat(Enumerable.Repeat(Ronum.ToString(), Value / (int)Ronum))
                            : (Result != "" && Result[Result.Length - 1].ToString() == ((Ronum)((int)Ronum * 5)).ToString()) 
                                ? "\b" + Ronum.ToString() + ((Ronum)((int)Ronum * 10)).ToString()
                                : Ronum.ToString() + ((Ronum)((int)Ronum * 5)).ToString();

                Value %= (int)Ronum;
            }

            return Result;
        }

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben