Python :: Aufgabe #2 :: Lösung #9
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
#9

von torstenkn (150 Punkte)
- 01.05.2020 um 10:31 Uhr
Ergebnis der Folge 15 ist: 1321132132211331121321232221121113122113121122132112311321322112111312211312113221133211322112211213322112
Python-Code

numSeries = 112 iterations = 14 #Helper function def nextNumber(Number): currentNumber = 0 currentCounter = 0 result = "" for m in range(len(str(Number))): # Erste Runde initialisiert Methode if currentNumber == 0: currentNumber = int(str(Number)[m]) currentCounter = 1 continue #Zahl gleich geblieben: Weiterzählen if str(currentNumber) == str(Number)[m]: currentCounter = currentCounter + 1 continue #Neue Zahl if str(currentNumber) != str(Number)[m]: result = result + str(currentCounter) + str(currentNumber) currentNumber = int(str(Number)[m]) currentCounter = 1 continue result = result + str(currentCounter) + str(currentNumber) return result #Main for i in range(iterations): numSeries = str(nextNumber(numSeries)) #Kann alle Folgen ausgeben #print("Runde " + str(i+2) + " : " + str(numSeries)) if i+2 == 15: print("Ergebnis der Folge 15 ist: " + str(numSeries))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1