Cursus Raku / Essentiëlen / Lussen / Oefeningen / Faculteit

Oplossing: Faculteit

Een faculteit van N is een product van gehele getallen van 1 tot en met N. Bijvoorbeeld, de faculteit van 4 is 1 * 2 * 3 * 4 = 24.

Code

my $n = 8;

my $f = 1;
$f *= $_ for 2..$n;

say $f;

🦋 Vind het programma in het bestand factorial.raku.

Uitvoer

Voer het programma een paar keer uit en probeer verschillende waarden van $n.

$ raku exercises/loops/factorial.raku
40320

Opmerkingen

Dit programma gebruikt de *= operator, wat een snelkoppeling is voor vermenigvuldiging met toewijzing: $x *= $y is equivalent aan $x = $x * $y.

Je kunt een ‘volledige’ lus gebruiken in plaats van een postfix-vorm:

my $n = 8;

my $f = 1;
for 2..$n -> $x {
    $f *= $x;
}

say $f;

Meer over dit onderwerp

We zullen meerdere keren terugkomen op deze taak. In dit deel van de cursus zullen we dit probleem ook recursief oplossen.

In het tweede deel van de cursus zullen we leren over de zogenaamde reductie-operators, die de oplossing triviaal maken. Ook zal er een manier zijn om een aangepaste operator ! te definiëren zodat je $n! kunt schrijven om een faculteit te berekenen. Ten slotte zal er een andere kans zijn om een interessante oplossing te zien wanneer we het over de where clausule hebben.

Volgende oefening

💪 Fibonacci getallen

Cursusnavigatie

Voorwaardelijke controles / Ternaire operator   |   Datentyp-conversie

Deze pagina is automatisch vertaald met ChatGPT 4o. Originele Engelse tekst.

Vertalingen van deze pagina: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська