Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Рекурсия / Exercises / Триъгълно число
Решение: Триъгълно число
Ето едно възможно решение на задачата.
Код
multi tri(0) { 0 }
multi tri($n) { $n + tri($n - 1) }
say tri(5);🦋 Намерете програмата във файла triangular-number.raku.
Изход
15Коментари
Базовият случай е отделен кандидат:
multi tri(0)съвпада само когато аргументът е точно0, и връща0без рекурсия.Всяко друго извикване попада в
multi tri($n), който добавя$nкъм триъгълното число на$n - 1. Извикванията се спускат5 + 4 + 3 + 2 + 1 + 0, а когато аргументът стигне0, диспечирането се превключва към кандидата с базовия случай и сумата се развива обратно до15.