Raku kurss / Funkcionālā, paralēlā, reaktīvā un tīmekļa programmēšana / Funkcionālā programmēšana / Rekursija / Exercises / Trijstūrveida skaitlis
Risinājums: Trijstūrveida skaitlis
Šeit ir iespējams risinājums uzdevumam.
Kods
multi tri(0) { 0 }
multi tri($n) { $n + tri($n - 1) }
say tri(5);🦋 Atrodiet programmu failā triangular-number.raku.
Izvade
15Komentāri
Bāzes gadījums ir savs kandidāts:
multi tri(0)sakrīt tikai tad, kad arguments ir tieši0, un atgriež0, nerekursējot.Katrs cits izsaukums nokļūst
multi tri($n), kas pieskaita$nskaitļa$n - 1trijstūrveida skaitlim. Izsaukumi nokāpj5 + 4 + 3 + 2 + 1 + 0, un, kad arguments sasniedz0, despečs pārslēdzas uz bāzes gadījuma kandidātu un summa attinas līdz15.