Hilfe bei Java IT1

kk980111

Neues Mitglied
Hallo,
Ich hoffe ihr könnt mir helfen, da ich im Moment echt keine Ahnung habe wie ich diese Aufgabe lösen könnte bzw. was der Sinn dieser Aufgabe ist.
Die Aufgaben :
"" Definieren Sie die Funktion int f(int n) rekursiv wie folgt:
f(n)=n+1,wenn n<3
f(n)=1+(((f(n-1)-f(n-2))*f(n-3))%100)sonst

Zum Testen geben Sie die Werte von f für n = 3 bis 30 aus.

Wozu könnte die Funktion sinnvoll eingesetzt werden? ""

Programmiert habe ich die Aufgabe folgendermaßen:
Java:
public class U10_a2 {
    static int f(int n){
        if (n<3){
            return n+1; }
      
            else {
            return 1 + (((f(n-1) -f(n - 2)) * f(n - 3)) % 100);
            }
        }

    public static void main(String[] args) {
        for (int i = 2; i<30; i++) {
            IO.println(f(i));
        }

    }

}

Nun spuckt das Programm jedoch für mich wirklich willkürliche Zahlen ohne wirklichen Zusammenhang aus. Meine Frage wäre ob ijmd eine Antwort auf die Frage hat, welcher Sinn diese Funktion hat.
Grüße
 

Mülchmann

Mitglied
Würde ich nicht, da es am Ende eine endlosschleife ergibt, wie mir scheint.
Mein erster Gedanke war in Richtung trigonometrischer Funktionen, aber das wäre nur geraten
 

JCODA

Top Contributor
Ich erkenne leider auch keinen Zusammenhang. Das einzig halbwegs plausible wäre so etwas wie Prozessor-Performance vergleichen, da die drei rekursiven Aufrufe zu einer exponentiellen Laufzeit führen. (Die Werte nach 30 benötigen ziemlich lange.)
 

Neue Themen


Oben