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

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ß
#3
vote_ok
von eisheiliger (3750 Punkte) - 15.03.2021 um 16:53 Uhr
Quellcode ausblenden Python-Code

"""
#323: Fröhliche Zahlen (Happy Number)
Von einer fröhlichen Zahl spricht man, wenn eine natürliche Ausgangszahl (Integer)
nach einer bestimmten Iterationsvorschrift am Ende den Zielwert 1 hat.
"""


def happy(zahl):
    zwi = 0
    ite = [zahl]
    wei = True
    erg = ""

    while wei:
        split = list(map(int, str(zahl)))
        for i in split:
            zwi += (i ** 2)
        if zwi == 1:
            erg = "happy"
            wei = False
        elif zwi in ite:
            erg = "sad"
            wei = False
        else:
            ite.append(zwi)
            zahl = zwi
            zwi = 0
    return ite, erg


def main():
    print(happy(19))
    print(happy(2))


if __name__ == '__main__':
    main()


Kommentare:

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

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

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.