Ist zwar Java, das ist aber C nicht so unähnlich:
zuerst Klassisch:
Code:
public static void main (String arguments[])
{
int n = 1; // Ergebnis
int z = -4; // Zähler: hier beginnt die Fakultät
while (z>0)
{
n*=z; // Fakulät berechnen
z--; // Zähler erniedrigen
// System.out.println(z + " " +n);
}
if (z<0) System.out.println("Keine negativen Zahlen bei der Fakultät!!!");
else
{
if (z==0) n=1;
System.out.println(n);
}
}
und dann noch als Rekursion:
Code:
static int Faktu (int n) // Faktu ist eine Klassenmethode -> keine Instanz nötig
{
if (n<0) return -1; // negative Zahlen haben keine Fakultät -> Code -1 zurückgeben
if (n==0) // Fakultät von 0 ist 1
{
n=1;
return n;
}
else
{
n *= Faktu(n-1); // Fakultät n! ist n*(n-1)!
System.out.print(n + " ");
return n;
}
}
public static void main (String arguments[])
{
int n=7;
n = Faktu(n);
if (n == -1) System.out.println("Keine negativen Zahlen für Fakultät verwenden!");
else System.out.println(n);
}