/***********************************************************
SWmathfor.java
Sigrid Wehner's mathematische Formeln
Autorin: Sigrid Wehner
Betr.system: Suse Linux
Stand: 30.4.2002
**********************************************************/
package SWjtools;
/** Sigrid Wehner's mathematische Formeln
* @author: Sigrid Wehner
* @version 30.4.2002
*/
public class SWmathfor
{
public SWmathfor()
{
}
/** Berechnet n-FAKULTÄT rekursiv.
* (Beispiel für elegantes Verfahren)
* @param n natürliche Zahl
* @return n! (bzw. -1, falls n negativ war)
*/
public long fakr(int n)
{
if (n<0) return -1;
else
if (n==0) return 1;
else return n*fakr(n-1);
}
/** Berechnet n-FAKULTÄT iterativ.
* @param n natürliche Zahl
* @return n! (bzw. -1, falls n negativ war)
*/
public long faki(int n)
{ long nf = 1;
if (n<0) return nf=-1;
else
if (n==0) return nf=1;
else
{ for (int i=1; i
* Dieses ist ein Beispiel für schlechte Anwendung von Rekursion, da die
* Anzahl der Rechenschritte gigantisch anwächst mit steigendem n!!!
* @param n Es soll n-te Fibonacci-Zahl berechnet werden.
* @return n-te Fibonacci-Zahl (bzw. -1, falls n<0)
*/
public int fibor(int n) { if (n<=0) return -1;
else
zaehli++;
if (n==1 || n==2) return 1;
else return fibor(n-1) + fibor(n-2);
}
/** Berechnet FIBONACCI-Zahlen iterativ.
* Dieses ist ein Beispiel dafür, dass der iterative Algorithmus
* effektiver ist als die Rekursion!!!
* @param n Es soll n-te Fibonacci-Zahl berechnet werden.
* @return n-te Fibonacci-Zahl (bzw. -1, falls n<0)
*/
public int fiboi(int n)
{ int fi =1;
int h_1=1; int h_2=1;
zaehli=1;
if(n<=0) return fi=-1;
else
if (n==1 || n==2) return fi=1;
else
{ zaehli=2;
for (int i=3; i