/* docschroeder

Dieses Programm ruft verschiedene Funktionen auf. Wir werden diese
als METHODEN bezeichnen. In der Regel sind Methoden an ein Objekt gebunden,
wir verwenden jedoch noch keine Objekte. Das Schluesselwort STATIC in der
Deklaration erlaubt den Aufruf von Methoden ohne Objekte!

Unsere Methoden sind alle PUBLIC und koennen daher auch aus anderen
CLASSES ausgefuehrt werden. Methoden koennen ein AUFTRAG sein - dann geben
sie keinen Wert zurueck, es taucht in der Deklaration ein VOID auf. Sie koennen
eine ANFRAGE sein, dann geben sie einen Wert vom Typ int, long, float, double, char,
String, boolean oder aber auch Objekte (=nicht-primitive Datentypen) zurueck.

Ausserdem koennen Methoden OHNE Parameter aufgerufen werden (zB loesche Bildschirm, piepe etc)
oder mit einem oder mehreren Parametern.

Syntax: public static RUECKGABETYP METHODENNAME (PARAMETER1,PARAMETER2,...)
	{ANWEISUNGEN
	ggf. RETURN WERT;      (nur bei Anfragen)
	}

*/


public class Methoden1Bsp {

public static void main (String [] args) {

int n=6;
int m=3;
int ergebnis;		//zu berechnen: (n!-m!)/(n-m)! fuer n>m

	if (n<=m || m==0) {		//unzulaessig
	System.out.println("Falsche Werte!!!");
	}

	else  {
	ergebnis = (fakultaet(n)-fakultaet(m)) / fakultaet(n-m);
	System.out.println(ergebnis);
	}

}	//Ende Hauptmethode MAIN--------------------------


public static int fakultaet (int zahl) {

	for (int i=zahl-1;i>0;i--) {
	zahl=zahl*i;			//zahl*(zahl-1)*(zahl-2)...*1
	}

	return zahl;			//Wert von zahl wird zurueckgegeben als Integer

}	//Ende Methode fakultaet--------------------------

}	//Ende class

