Feedback

C# - Fakultät berechnen (rekursiv)

Veröffentlicht von am 04.08.2006
(1 Bewertungen)
Berechnet rekursiv die Fakultät einer Zahl.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Entwickler - Kompakt

Nach Teilnahme an dieser Schulung kennen Sie alle wesentlichen Funktionen des TFS für Entwickler. Sie setzen Software-Entwicklung mit dem Visual Studio Team Foundation Server erfolgreich um.

public int Faculty( int n )
{
    return n == 0 ? 1 : n * Faculty( n-1 );
}
Abgelegt unter fakultät.

3 Kommentare zum Snippet

herbivore schrieb am 08.12.2006:
Endlosrekursion, wenn für n eine negative Zahl angegeben wird.
Günther Foidl schrieb am 24.09.2008:
Die iterative Variante ist besser. Zum einen schneller - weniger Overhead - und zum anderen sicherer gegen Stapelüberlauf.

private static int Fakultät(int zahl)
{
if (zahl < 0)
throw new ArgumentOutOfRangeException("Zahl darf nicht kleiner 0 sein");

int fakultät = 1;

if (zahl == 0 || zahl == 1)
fakultät = 1;
else
{
for (int i = 1; i <= zahl; i++)
fakultät *= i;
}

return fakultät;
}
Koopakiller schrieb am 22.10.2012:
Tausche das int im Methodenkopf gegen ein uint und den Rückgabewert gegen ein ulong aus. So hast du
1. kein Problem mehr mit negativen Zahlen
2. kannst größere Fakultäten verarbeiten

ich testete es mehrmals ob iterativ scheller als rekursiv ist, dem war erst so als ich mehrere tausend Berechnungen hintereinander durchführte, sonst war immer das rekursive vorne.
 

Logge dich ein, um hier zu kommentieren!

Ähnliche Snippets