Wir wissen, dass Fakultäts als (wenn die Verwendung C++) geschrieben werden konnteWarum das Ergebnis Factorial in Rekursion ohne "return" geschrieben
int factorial(int number)
{
if (number == 0)
return 1;
else
return (number * factorial(number - 1));
}
wenn schrieb als
int factorial(int number)
{
if (number == 0)
return 1;
else
(number * factorial(number - 1));
}
sehen, dass es keine Rückkehr in der else-Klammer, dann ist das Ergebnis immer 1, egal was die Zahl ist, warum ist das?
Vielen Dank.
Wenn die fragliche Sprache C ist, dann wird die untere Funktion ein undefiniertes Verhalten aufweisen, da der 'else' Pfad niemals etwas zurückgibt; in Java wird der Code aus dem gleichen Grund nicht vollständig kompiliert – oldrinb
Und was auch immer die Sprache in Ihrer Frage sein mag, sollten Sie es über Tags oder in Ihrer Frage identifiziert haben. – EJP