C - Recursie
Recursie is het proces waarbij items worden herhaald op een manier die op zichzelf lijkt. Als een programma u in programmeertalen toestaat een functie binnen dezelfde functie aan te roepen, wordt dit een recursieve aanroep van de functie genoemd.
void recursion() { recursion(); /* function calls itself */ } int main() { recursion(); }
De programmeertaal C ondersteunt recursie, d.w.z. een functie om zichzelf aan te roepen. Maar bij het gebruik van recursie moeten programmeurs voorzichtig zijn met het definiëren van een exit-voorwaarde van de functie, anders komt deze in een oneindige lus terecht.
Recursieve functies zijn erg handig om veel wiskundige problemen op te lossen, zoals het berekenen van de faculteit van een getal, het genereren van Fibonacci-reeksen, enz.
Nummer Factorial
Het volgende voorbeeld berekent de faculteit van een gegeven getal met behulp van een recursieve functie −
Live demo#include <stdio.h> unsigned long long int factorial(unsigned int i) { if(i <= 1) { return 1; } return i * factorial(i - 1); } int main() { int i = 12; printf("Factorial of %d is %d\n", i, factorial(i)); return 0; }
Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −
Factorial of 12 is 479001600
Fibonacci-reeks
Het volgende voorbeeld genereert de Fibonacci-reeks voor een gegeven getal met behulp van een recursieve functie −
Live demo#include <stdio.h> int fibonacci(int i) { if(i == 0) { return 0; } if(i == 1) { return 1; } return fibonacci(i-1) + fibonacci(i-2); } int main() { int i; for (i = 0; i < 10; i++) { printf("%d\t\n", fibonacci(i)); } return 0; }
Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −
0 1 1 2 3 5 8 13 21 34
C Taal
- C# Hello World - Uw eerste C#-programma
- C#-zoekwoorden en -ID's
- C#-variabelen en (primitieve) gegevenstypen
- C#-operators
- C# Bitsgewijze en Bit Shift-operators
- C# Basisinvoer en -uitvoer
- C#-expressies, statements en blokken (met voorbeelden)
- C# Opmerkingen
- C# break-instructie
- C# doorgaan Verklaring
- C#-matrices