Python :: Aufgabe #297 :: Lösung #1
2 Lösungen
#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ß
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
von Marty3000 (680 Punkte)
- 04.11.2020 um 12:46 Uhr
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
Seite 1 von 0
1
