Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Rekursio / Exercises / Triangula nombro
Solvo: Triangula nombro
Jen ebla solvo de la tasko.
Kodo
multi tri(0) { 0 }
multi tri($n) { $n + tri($n - 1) }
say tri(5);🦋 Vi povas trovi la fontkodon en la dosiero triangular-number.raku.
Eligo
15Komentoj
La baza kazo estas propra kandidato:
multi tri(0)kongruas nur, kiam la argumento estas ekzakte0, kaj redonas0sen rekursii.Ĉiu alia voko trafas
multi tri($n), kiu aldonas$nal la triangula nombro de$n - 1. La vokoj malsupreniras5 + 4 + 3 + 2 + 1 + 0, kaj kiam la argumento atingas0, la disdono ŝanĝiĝas al la baz-kaza kandidato kaj la sumo malvolviĝas al15.