Avatar ·

Comment implémenter la récursion en C++ ?

Bonjour à tous ! Je suis débutant en C++ et j'essaie de comprendre la récursion. J'ai écrit une fonction simple pour calculer la factorielle, mais elle ne fonctionne pas correctement. Voici le code : ```cpp #include using namespace std; int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } } int main() { int num = 5; cout << "Факториал " << num << " = " << factorial(num) << endl; return 0; } ``` Je m'attends à obtenir 120 pour le nombre 5, mais parfois le programme plante ou retourne des valeurs étranges. J'ai essayé d'ajouter une vérification pour les nombres négatifs, mais cela n'a pas aidé. J'ai aussi lu sur le stack overflow, mais je ne suis pas sûr de comment l'éviter. Peut-être que le problème vient du fait que je n'utilise pas correctement le cas de base ? Ou faut-il faire quelque chose avec le type de retour ? Je veux comprendre comment organiser correctement la récursion pour qu'elle fonctionne de manière stable pour de grands nombres (par exemple, pour 20). Je serais reconnaissant pour une explication des principes de base et des solutions possibles.