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

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

von AnnaIhrs (460 Punkte)
- 03.06.2016 um 13:31 Uhr

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