Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Funktionale Programmierung / Rekursion / Exercises / Dreieckszahl
Lösung: Dreieckszahl
Hier ist eine mögliche Lösung der Aufgabe.
Code
multi tri(0) { 0 }
multi tri($n) { $n + tri($n - 1) }
say tri(5);🦋 Du findest den Quellcode in der Datei triangular-number.raku.
Ausgabe
15Kommentare
Der Grundfall ist ein eigener Kandidat:
multi tri(0)trifft nur, wenn das Argument genau0ist, und liefert0ohne Rekursion.Jeder andere Aufruf landet in
multi tri($n), das$nzur Dreieckszahl von$n - 1addiert. Die Aufrufe steigen5 + 4 + 3 + 2 + 1 + 0hinab, und sobald das Argument0erreicht, wechselt die Auswahl zum Grundfall-Kandidaten, und die Summe wickelt sich zu15ab.