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

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
#5
vote_ok
von AnnaIhrs (460 Punkte) - 03.06.2016 um 13:31 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python3
# -*- coding: cp1252 -*-
#
#>>>autor:      Sebastian Müller
#>>>licence:    GPL
#>>>contact:    mypythonmueller@gmail.com

# program to create a serie of numbers at following rule at 15 steps
# 1st    : 112       >2x1+1x2            >>>2112
# 2nd    : 2112      >1x2+2x1+1x2        >>>122112
# 3rd    : 122112    >1x1+2x2+2x1+1x2    >>>11222112
# 4th    : 11222112  >2x1+3x2+2x1+1x2    >>>21322112    ....etc.
# programm zur erstellung einer zahlenfolge nach den folgenden regeln
# 1.    : 112       >2x1+1x2            >>>2112
# 2.    : 2112      >1x2+2x1+1x2        >>>122112
# 3.    : 122112    >1x1+2x2+2x1+1x2    >>>11222112
# 4.    : 11222112  >2x1+3x2+2x1+1x2    >>>21322112    ....usw.

# save the first number as a string in "reihe"
# speicher die erste nummer als string in "reihe"
reihe = "112"

# initiate a loop with 15 rounds
# schleife mit 15 runden
for z in range(15):

# the program
# das programm
    rzahler = 0
    azahler = 0
    reiheerg = 0
    for i in reihe:
        rzahler +=1
        if rzahler == 1:
            a = i
            azahler += 1
            continue
        elif i == a and len(reihe) == rzahler:
            if not reiheerg:
                reiheerg = str(azahler + 1) + str(a)
            else:
                reiheerg = reiheerg + str(azahler +1) + str(a)
        elif i != a and len(reihe) == rzahler:
            if not reiheerg:
                reiheerg = str(azahler) + str(a) + str(1) + str(i)
            else:
                reiheerg = reiheerg + str(azahler) + str(a) + str(1) + str(i)
        elif i != a:
            if not reiheerg:
                reiheerg = str(azahler) + str(a)
                a = i
                azahler = 1
            else:
                reiheerg = reiheerg + str(azahler) + str(a)
                a = i
                azahler = 1
        else:
            azahler += 1
    reihe = reiheerg

# output of the last 15th number
# ausgabe der letzten 15. nummer
print(reiheerg)

Kommentare:

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

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

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.