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]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

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