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

#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
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

von aheiland (650 Punkte)
- 11.03.2015 um 13:44 Uhr

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
Seite 1 von 0
1