Python :: Aufgabe #2 :: Lösung #2

10 Lösungen Lösungen öffentlich
#2

Zahlenfolge berechnen und fortsetzen

Anfänger - Python 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 Urkel_ (50 Punkte) - 12.06.2015 um 10:33 Uhr
Quellcode ausblenden Python-Code
Folge = "112"

print ("Startfolge - 1 : " + Folge)

for a in range(2,16):

    Zeichendavor = "0"
    Zaehler = 0
    NeueFolge = ""
    
    for Zeichen in Folge:
        
        if Zeichen == Zeichendavor:
            Zaehler = Zaehler + 1
        else:
            if Zaehler != 0:
                NeueFolge = NeueFolge + str(Zaehler) + str(Zeichendavor)            
            Zaehler = 1
            Zeichendavor = Zeichen
    
    NeueFolge = NeueFolge + str(Zaehler) + str(Zeichen)    
            
    print( "Neue Folge - " + str(a) + " : " + NeueFolge)
    Folge = NeueFolge


Die Ausgabe:

Startfolge - 1 : 112
Neue Folge - 2 : 2112
Neue Folge - 3 : 122112
Neue Folge - 4 : 11222112
Neue Folge - 5 : 21322112
Neue Folge - 6 : 121113222112
Neue Folge - 7 : 11123113322112
Neue Folge - 8 : 3112132123222112
Neue Folge - 9 : 132112111312111213322112
Neue Folge - 10 : 11131221123113111231121123222112
Neue Folge - 11 : 3113112221121321133112132112211213322112
Neue Folge - 12 : 1321132132211211131221232112111312212221121123222112
Neue Folge - 13 : 1113122113121113222112311311221112131221123113112211322112211213322112
Neue Folge - 14 : 31131122211311123113322112132113212231121113112221121321132122211322212221121123222112
Neue Folge - 15 : 1321132132211331121321232221121113122113121122132112311321322112111312211312113221133211322112211213322112

Kommentare:

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

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