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

15

Komentāri

  1. Bāzes gadījums ir savs kandidāts: multi tri(0) sakrīt tikai tad, kad arguments ir tieši 0, un atgriež 0, nerekursējot.

  2. Katrs cits izsaukums nokļūst multi tri($n), kas pieskaita $n skaitļa $n - 1 trijstūrveida skaitlim. Izsaukumi nokāpj 5 + 4 + 3 + 2 + 1 + 0, un, kad arguments sasniedz 0, despečs pārslēdzas uz bāzes gadījuma kandidātu un summa attinas līdz 15.

Kursa navigācija

Trijstūrveida skaitlis   |   Augstākas kārtas funkcijas