C# :: Aufgabe #12 :: Lösung #4

8 Lösungen Lösungen öffentlich
#12

Zahlenfolge berechnen und fortsetzen

Anfänger - C# von pocki - 24.11.2012 um 19:50 Uhr
Es soll eine Zahlenfolge wiefolgt berechnet werden:
Die nacheinander folgenden gleichen Zahlen werden gezählt und zusammen mit der Zahl ausgegeben.
Aus der neu berechneten Zahlenfolge errechnet sich die nächste.

Beispiel:
1. Folge: 112
2. Folge: 2112 (2 Einser und 1 Zweier)
3. Folge: 122112 (1 Zweier, 2 Einser, und 1 Zweier)
usw.

Es soll nun mit dieser ersten Folge startend die 15. Folge berechnet und ausgegeben werden.
Wenn mehrstellige Zahlen vorkommen sind diese gleich auszugeben. Bsp: 12 Einser = 121
#4
vote_ok
von aheiland (650 Punkte) - 11.03.2015 um 13:44 Uhr
Quellcode ausblenden C#-Code
    class Program
    {
        static void Main(string[] args)
        {
            Zahlenfolge zf = new Zahlenfolge("112");
            Console.WriteLine("01. Folge :" + zf.ToString(""));
            for (int i = 2; i < 15; i++)
            {
                zf.next();
                Console.WriteLine(i.ToString("00") + ". Folge :" + zf.ToString(""));
            }
            Console.ReadKey();
        }
    }

    class Zahlenfolge
    {
        private string folge;

        public Zahlenfolge(string folge)
        {
            this.folge = folge;
        }

        public string ToString(string seperator)
        {
            return String.Join(seperator, folge);
        }

        public void next()
        {
            StringBuilder sb = new StringBuilder();
            char s = ' ';
            int count = 0;
            foreach (char c in folge)
            {
                if (c != s)
                {
                    if (count != 0) sb.Append(count).Append(s);
                    count = 1;
                    s = c;
                }
                else
                {
                    count++;
                }
            }
            if (count != 0) sb.Append(count).Append(s);
            folge = sb.ToString();
        }
    }

Kommentare:

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

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