next up previous contents
Nächste Seite: Fibonacci-Zahlen Aufwärts: Funktionen rekursiv verwenden Vorherige Seite: Funktionen rekursiv verwenden   Inhalt

Eine rekursiv definierte Funktion

Im folgenden Beispiel wird eine rekursiv definierte Folge ganzer Zahlen ausgegeben:


\begin{displaymath}
a_{n+1}=a_n+2, \qquad a_1=3, \qquad n \geq 1
\end{displaymath}

Berechnen wir die ersten Werte, so erhalten wir $a_1=3$, $a_2=3+2=5$, $a_3=5+3=5$, usf. Das folgende Programm gibt alle Folgenglieder bis zu dem in der Kommandozeile angegebenen Index aus:

public class Rekursion {

    static int funktion(int n) {
        if (n==1) return 3;
        else return funktion(n-1) + 2;
    }

    public static void main (String [] args) {
        int maxzahl = Integer.parseInt(args[0]);
        for (int i=1; i<=maxzahl; i++) {
            System.out.println(i + ": " + funktion(i));
        }
    }
}

Beim Programmlauf erhalten wir:

alfred@duron:~/java/themen> java Rekursion 5
1: 3
2: 5
3: 7
4: 9
5: 11

Es ist klar, dass diese Folge auch iterativ berechnet hätte werden können - es liegt eine einfache arithmetische Folge mit $a_1=3$ und $d=2$ vor.



Alfred Nussbaumer 2003-02-10