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.
De faculteit van een getal n is als volgt gedefinieerd:
n! = n*(n-1)*(n-2)*..*2*1 = n*(n-1)!
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)roeptfactorial(4)aan en vermenigvuldigt het resultaat met 5.factorial(4)roeptfactorial(3)aan en vermenigvuldigt het resultaat met 4.factorial(3)roeptfactorial(2)aan en vermenigvuldigt het resultaat met 3.factorial(2)roeptfactorial(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
5die gelijk is aan120.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.