import java.io.*; //Bekanntmachen aller Klassen aus dem Paket java.io
import java.lang.*; //Bekanntmachen aller Klassen aus dem Paket java.lang
public class AufgabeZwei
{
public static long stirling(int n, int k) //Methode
{
long stir; //Deklaration Variable
if (n==0 && k==0) //Wenn n und k gleich null
{
return stir=1; //Dann gib stir=1 zurück
}
else //Sonst
{
if (k==0) //Wenn k=0
{
return stir=0; //Dann gib stir=0 zurück
}
else //Sonst
{
if (n==k) //Wenn k=n
{
return stir=1; //Dann gib stir=1 zurück
}
else //Sonst
{
return stir=(k*stirling(n-1,k)+stirling(n-1,k-1)); //Dann Gib stir=(k*stirling(n-1,k)+stirling(n-1,k-1)) zurück
}
}
}
}
public static void main(String[] args)
{
if (args.length !=2 ) //Wenn Feldlänge ungleich 2
{
System.out.print("Sie haben eine falsche Anzahl an Zahlen eingegeben."); //Dann Ausgabe "Falsche Anzahl"
}
else //Sonst
{
try //Anweisung in der ein Ausnahmefehler auftreten kann
{
int n=Integer.parseInt(args[0]); //String 1 wird in Integer umgewandelt und n zugewiesen
int k=Integer.parseInt(args[1]); //String 2 wird in Integer umgewandelt und k zugewiesen
if (k<0 || n<0 || n<k) //Wenn Zahl außerhalb Wertebereich
{
System.out.println("Die eingegebenen Zahlen liegen ausserhalb des Wertebereiches 0 < k < n !"); //Dann Ausgabe "Zahl außerhalb Wertebereich"
}
else //Sonst
{
System.out.print("stirling("+n+","+k+")= "+stirling(n,k)); //Ausgabe Stirling(n,k)
}
}
catch (Exception e) //passender Ausnahmetyp
{
System.out.print("Fehler! Bitte geben Sie zwei ganze Zahlen ein!"); //Ausgabe: "Fehler, zwei ganze Zahlen eingeben!"
}
}
}
}