Avatar ·

Wie implementiert man Rekursion in C++?

Hallo zusammen! Ich bin neu in C++ und versuche, Rekursion zu verstehen. Ich habe eine einfache Funktion zur Berechnung der Fakultät geschrieben, aber sie funktioniert nicht richtig. Hier ist der Code:\n\n```cpp\n#include \nusing namespace std;\n\nint factorial(int n) {\n if (n == 0) {\n return 1;\n } else {\n return n * factorial(n - 1);\n }\n}\n\nint main() {\n int num = 5;\n cout << "Fakultät von " << num << " = " << factorial(num) << endl;\n return 0;\n}\n```\n\nIch erwarte 120 für die Zahl 5, aber manchmal stürzt das Programm ab oder gibt seltsame Werte zurück. Ich habe versucht, eine Überprüfung auf negative Zahlen hinzuzufügen, aber das hat nicht geholfen. Ich habe auch über Stack-Überlauf gelesen, bin mir aber nicht sicher, wie ich ihn vermeiden kann. Vielleicht liegt das Problem darin, dass ich den Basisfall nicht richtig verwende? Oder muss ich etwas mit dem Typ machen?