Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Функционално програмиране / Рекурсия / Exercises / Триъгълно число

Решение: Триъгълно число

Ето едно възможно решение на задачата.

Код

multi tri(0)  { 0 }
multi tri($n) { $n + tri($n - 1) }

say tri(5);

🦋 Намерете програмата във файла triangular-number.raku.

Изход

15

Коментари

  1. Базовият случай е отделен кандидат: multi tri(0) съвпада само когато аргументът е точно 0, и връща 0 без рекурсия.

  2. Всяко друго извикване попада в multi tri($n), който добавя $n към триъгълното число на $n - 1. Извикванията се спускат 5 + 4 + 3 + 2 + 1 + 0, а когато аргументът стигне 0, диспечирането се превключва към кандидата с базовия случай и сумата се развива обратно до 15.

Навигация в курса

Триъгълно число   |   Функции от по-висок ред