Im Wesentlichen versuche ich eine Funktion zu erstellen, r_sum (n), die die Summe der ersten "n" reziproken zurückgibt: z.B. sum (5) = 1 + 1/2 + 1/3 + 1/4 + 1/5. Ich bin neu in der Rekursion und habe Probleme mit der Implementierung. Hier ist der Code, den ich bisher habe:Rekursive Summenfunktion in Python?
def r_sum(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return 1/n
Ich glaube, ich habe die Basis der Funktion erstellt, aber ich bin nicht sicher, wo ich hätte die Funktion selbst aufrufen. Jetzt weiß ich, dass die Funktion nur den Wert 1/n zurückgibt. Wie kann ich das hinzufügen, so dass ich die Funktion habe selbst anrufen, um diese Summe zu berechnen?
'def sum_to (n): return 0, wenn n == 0 sonst 1./n + sum_to (n-1) '-» Alles zu einfach. Vielleicht bist du nicht so stark wie ich dachte. « – Alfe
http://stackoverflow.com/questions/36163040/python-3-recursion-maximum-dept-exceeded Ist das ein Teil eines Kurses? –
Nun sollte ein Kommentar bleiben, der besagt, dass * in Python 3 * Dinge wie '1/n' einen Gleitkommawert erzeugen, selbst wenn' n' eine Ganzzahl ist. Da dies für andere Programmiersprachen ungewöhnlich ist (sogar Python 2 gibt einen int zurück, 0 für die meisten "n"), ist dieser Kommentar immer noch sinnvoll. – Alfe