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