Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Recursie | Enkele Geavanceerde Onderwerpen
C++-Functies

Recursie

Veeg om het menu te tonen

Recursie in programmeren verwijst naar de techniek waarbij een functie zichzelf aanroept om een kleinere versie van hetzelfde probleem op te lossen. Het is een krachtige en elegante manier om problemen op te lossen die kunnen worden opgedeeld in kleinere deelproblemen van hetzelfde type.

Recursieve functies bestaan doorgaans uit twee componenten:

  • Basisgeval: Definieert de beëindigingsvoorwaarde voor de recursieve functie. Wanneer het basisgeval wordt bereikt, stopt de functie met aanroepen en retourneert een specifieke waarde. Dit is noodzakelijk om oneindige recursie te voorkomen.

  • Recursief geval: Definieert de logica voor het opdelen van het probleem in kleinere deelproblemen en het recursief aanroepen van de functie met verkleinde invoer. Het recursieve geval zorgt ervoor dat de functie voortgang boekt richting het basisgeval.

Note
Opmerking

De faculteit van een getal n is als volgt gedefinieerd:

n! = n*(n-1)*(n-2)*..*2*1 = n*(n-1)!

main.cpp

main.cpp

12345678910111213141516171819
#include <iostream> // Function to calculate factorial int factorial(int n) { // Base case: factorial of 0 or 1 is 1 if (n == 0 || n == 1) return 1; // Recursive case: multiply n with factorial of (n-1) std::cout << "Recursive Case: " << n << " * factorial(" << n - 1 << ")" << std::endl; return n * factorial(n - 1); } int main() { // Call the function std::cout << factorial(5) << std::endl; }

Basisgeval: Het basisgeval is wanneer de invoer n gelijk is aan 0 of 1. In dit geval is de faculteit gedefinieerd als 1. Het basisgeval zorgt ervoor dat de recursie stopt en voorkomt oneindige recursie.

Recursief geval: Het recursieve geval is de logica voor het berekenen van de faculteit van n wanneer n groter is dan 1. Dit houdt in dat de faculteitsfunctie recursief wordt aangeroepen met n - 1 als argument en het resultaat wordt vermenigvuldigd met n. Dit reduceert het probleem tot een kleiner subprobleem door de faculteit van een kleiner getal te berekenen.

De functie aanroepen met argument gelijk aan 5. Hier is het stapsgewijze proces:

  • factorial(5) roept factorial(4) aan en vermenigvuldigt het resultaat met 5.
  • factorial(4) roept factorial(3) aan en vermenigvuldigt het resultaat met 4.
  • factorial(3) roept factorial(2) aan en vermenigvuldigt het resultaat met 3.
  • factorial(2) roept factorial(1) aan en vermenigvuldigt het resultaat met 2.
  • factorial(1) is het basisgeval en geeft 1 terug.
  • de vermenigvuldiging gaat terug omhoog in de keten, wat resulteert in de uiteindelijke faculteit van 5 die gelijk is aan 120.
question mark

Wat is de uitvoer van de in het hoofdstuk gemaakte functie factorial() voor invoer 3?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 3
some-alt