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

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
#2
vote_ok
von Mexx (2370 Punkte) - 07.11.2014 um 15:46 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Zahlenfolge
{
    class Program
    {
        static string input;

        static void Main(string[] args)
        {
            Console.WriteLine("Geben Sie die Anfangszahl ein:");
            input = Console.ReadLine();
            int zahl;
            if (!int.TryParse(input, out zahl))
                Console.WriteLine("Sie haben keine gültige Ganzzahl eingegeben");
            else
            {
                for (int i = 0; i < 15; i++)
                {
                    Berechnen(ref input);
                    Console.WriteLine(input);
                }
            }

            Console.ReadKey();
        }

        private static void Berechnen(ref string zahl)
        {
            string tempZahl = zahl;
            string temp = string.Empty;
            int anzahl = 1;
            for (int i = 0; i < tempZahl.Length; i++)
            {
                if (i < tempZahl.Length - 1)
                {
                    if (tempZahl[i].ToString() == tempZahl[i + 1].ToString())
                    {
                        anzahl++;
                        continue;
                    }
                }
                temp += anzahl + tempZahl[i].ToString();
                anzahl = 1;
            }
            zahl = temp;
        }
    }
}

Kommentare:

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

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