Bifalgorithm post · Computer science one · Recursion
How can you implement ordinary and tail-recursive summation functions in PHP?
How can you implement ordinary and tail-recursive summation functions in PHP? (Computer science one · Recursion) — "As another example that actually does somet…
Ideas in this flowchart
- Rekursive Summationsfunktionen und ihre tail-rekursive Variante
- Die gewöhnliche Funktion recSum verarbeitet ein Array rekursiv.
- Die Funktion erhält das Array arr und den Index i.
- Wenn i die Arraygröße erreicht, gibt die Funktion 0 zurück.
- Andernfalls ruft sie sich mit i+1 auf und addiert danach arr[i].
- Der erste Aufruf verwendet recSum($arr, 0).
- Diese Funktion ist nicht tail-rekursiv, weil die Addition erst nach dem rekursiven Aufruf erfolgt.
- Die Funktion recSumTail führt die Summation tail-rekursiv aus.
- Sie erhält zusätzlich zur Array- und Indexvariable eine Summenvariable sum.
- Die bisherige Summe wird vor dem rekursiven Aufruf aktualisiert.
- Wenn i die Arraygröße erreicht, gibt die Funktion sum zurück.
- Andernfalls ruft sie sich mit i+1 und sum + arr[i] auf.