Python :: Aufgabe #323 :: Lösung #1

3 Lösungen Lösungen öffentlich
#323

Fröhliche Zahlen (Happy Number)

Fortgeschrittener - Python von JKooP - 28.02.2021 um 10:24 Uhr
Von einer fröhlichen Zahl spricht man, wenn eine natürliche Ausgangszahl (Integer)
nach einer bestimmten Iterationsvorschrift am Ende den Zielwert 1 hat.

Die Iterationsvorschrift hier:
Die Summe der Quadrate aller Ziffern einer Zahl.
Wiederholen des Prozesses mit der neu entstandenen Zahl, bis am Ende
das Ergebnis entweder 1 (true) ist oder die Schleife unendlich weiterläuft (false).

Beispiel Glückliche Zahl:
Zahl 19
1² + 9² = 82
8² + 2² = 68
6² + 8² = 100
1² + 0² + 0² = 1

Beispiel unendlich:
Zahl 2
2² = 4
4² = 16
1² + 6² = 37
3² + 7² = 58
5² + 8² = 89
8² + 9² = 145
...

Aufgabe 1 (mittel):
Erstelle eine Methode/Funktion, die als Ergebnis bei einer Glücklichen Zahl den Wert true
und ansonsten false zurückgibt. Dabei können mehrere Schleifen ineinander verschachtelt werden.

Aufgabe 2 (schwieriger):
Wie Aufgabe 1, aber mit nur einer Schleife.

Viel Spaß
#1
vote_ok
von felixTheC (1200 Punkte) - 04.03.2021 um 12:44 Uhr
Quellcode ausblenden Python-Code
def is_happy_number(num: int, max_tries: int = 10) -> bool:
    """
    Set `max_tries` to prevent infinite looping.
    """
    sum_ = sum(pow(int(val), 2) for val in str(num))
    if sum_ == 1:
        return True
    else:
        if max_tries == 1:
            return False
        return is_happy_number(sum_, max_tries=max_tries - 1)

Kommentare:

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

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

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.