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

2 Lösungen Lösungen öffentlich
#297

Periodenlänge von Stammbrüchen

Fortgeschrittener - Python von JKooP - 01.11.2020 um 09:50 Uhr
Stammbruch nennt man einen Bruch mit einer 1 im Zähler und einer beliebigen natürlichen Zahl im Nenner.
Schreibe eine Methode/Funktion, mit der man die Periodenlänge eines solchen Bruchs berechnen kann.

Beispiele:

1/4 = 0,25 --> Periodenlänge ist 0, da der Bruch abbricht
1/6 = 0,166666… = 0,16 --> Periodenlänge ist 1, da sich nur die Ziffer 6 wiederholt
1/11 = 0,090909… = 0.09 --> Periodenlänge ist 2, da sich die Ziffern 0 und 9 wiederholen

Viel Spaß
#1
vote_ok
von Marty3000 (680 Punkte) - 04.11.2020 um 12:46 Uhr
Quellcode ausblenden Python-Code
def test_297(n):

    def divide(value: int, divider: int, vr_list):
        global nk_list
        global period
        rst = (value * 10) % divider
        nxt = ((value * 10) - rst) / divider
        nk_list.append(int(nxt))
        if rst > 0 and vr_list.count((nxt, rst)) == 0:
            vr_list.append((nxt, rst))
            divide(rst, divider, vr_list)
        elif vr_list.count((nxt, rst)) > 0:
            period = len(vr_list) - vr_list.index((nxt, rst))

    def print_result(n):
        txt: str = "1/%d = 0." % n
        for nk in nk_list:
            txt += str(nk)
        txt += " Periodlänge %d" % period
        print(txt)

    print(1 / n)
    print("Zahl : %.30f" % (1 / n))
    divide(1, n, [])
    print_result(n)


nk_list = []
period: int = 0

if __name__ == '__main__':
    x = int(input("Bitte eine natürlich Zahl eingeben : "))
    test_297(x)

Kommentare:

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

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