La récursion est une méthode qui s'appelle elle-même. Dans les langages de programmation, si un programme permet d'appeler une fonction au sein de la même fonction, on parle d'appel récursif d'une fonction.
void recursion() { recursion(); /* 函数调用本身 */ } int main() { recursion(); }
Le langage C prend en charge la récursivité, c'est-à-dire une fonction qui s'appelle elle-même. Mais lors de l'utilisation de la récursivité, le programmeur doit être prudent dans la définition de la condition de sortie de la fonction, sinon elle entrera dans une boucle infinie.
Les fonctions récursives sont très utiles pour résoudre de nombreux problèmes mathématiques, comme calculer la factorielle d'un nombre, générer des séries de Fibonacci, etc.
Factoriale d'un nombre
L'exemple suivant utilise la récursivité pour calculer la fonction factorielle d'un nombre donné
#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; }
Sortie :
Factorial of 12 is 479001600
Série de Fibonacci
L'exemple suivant utilise une fonction récursive pour générer une série de Fibonacci pour un nombre donné
#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;}
Sortie :
0 1 1 2 3 5 8 13 21 34
Tutoriels vidéo associés recommandés en langage C : "Tutoriel C"
Cet article est une introduction à l'algorithme récursif en langage C, j'espère cela sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!