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
