Fibonacci mit einer Hilfsmethode berechnen

Timo2002

Mitglied
Hallo,
ich habe die Aufgabe die fibonacci Folge mit einer rekursiven Hilfsmethode zu berechnen.
Die Hilfsmethode soll dabei allerdings mit:
return fibonacchiRechner(zahl, zahl -1, zahl -2)
aufgerufen werden.

und nicht wie ich es getan habe mit:
return fibonacciRechner(zahl, 0, 1)

Leider kriege ich es mit dem Aufruf oben nicht wirklich hin. Wäre deshalb über Hilfe dankbar.


Mein Code:
Code:
    public static int fibonacci(int zahl) {
        return fibonacciRechner(zahl, 0, 1);
    }

    public static int fibonacciRechner(int zahl, int a, int b) {
        if (zahl == 0) {
            return a;
        } else {
            return fibonacciRechner(zahl -1, b, a+b );
        }

    }
 

weihnachtspyramide

Aktives Mitglied
Also Endrekursiv.

Mach doch so

Java:
public static int fibonacciRechner(int a, int b, int c) {
    if (a <= 0)
        return c;
    return fibonacciRechner(a-1, c, b+c);
}
 

Timo2002

Mitglied
Also Endrekursiv.

Mach doch so

Java:
public static int fibonacciRechner(int a, int b, int c) {
    if (a <= 0)
        return c;
    return fibonacciRechner(a-1, c, b+c);
}
Hey,
Vielen Dank für deine Antwort.

Leider komme ich mit dem Code nicht auf das richtige Ergebnis:
Java:
    public static int fibonacci(int zahl) {
        return fibonacciRechner(zahl, zahl -1, zahl -2);
    }

    public static int fibonacciRechner(int a, int b, int c) {
        if (a <= 0)
            return c;

        return fibonacciRechner(a-1, c, b+c);
    }

Erhalte hier bei Zahl = 6, den Wert 92.
Normal sollte es ja 8 ergeben.
 

weihnachtspyramide

Aktives Mitglied
Hi, bei mir stimmt die Ausgabe:

Java:
    public static int fibonacci(int x) {
        return fibonacciRechner(x - 2, 1, 1);
    }

    private static int fibonacciRechner(int a, int b, int c) {
        if (a <= 0) {
            return c;
        }
        return fibonacciRechner(a - 1, c, b + c);
    }

    public static void main(String[] args) {
        for (int i = 1; i <= 7; i++) {
            System.out.println(fibonacci(i)); // Prints: 1 1 2 3 5 8 13
        }
        System.out.println(fibonacciRechner(1, 987, 1597)); // Prints: 2584
    }

Du solltest mit x, 1, 1 aufrufen, das sind die ersten Zahlen der Fibonacci-Folge...

 

weihnachtspyramide

Aktives Mitglied
Es geht aber auch mit der Quadratwurzel. :) Aber ich nehme an, Rekursion ist gerade das Thema ...

Java:
    public static int fibonacci_1(int n) {
        return fibonacciRechner(n - 2, 1, 1);
    }

    public static int fibonacci_2(int n) {
        return (int) Math.round((Math.pow((1 + Math.sqrt(5)) / 2, n) - Math.pow((1 - Math.sqrt(5)) / 2, n)) / Math.sqrt(5));
    }

    private static int fibonacciRechner(int a, int b, int c) {
        if (a <= 0) {
            return c;
        }
        return fibonacciRechner(a - 1, c, b + c);
    }

    public static void main(String[] args) {
        for (int i = 1; i <= 7; i++) {
            System.out.println(fibonacci_1(i)); // Prints: 1 1 2 3 5 8 13
            System.out.println(fibonacci_2(i)); // Prints: 1 1 2 3 5 8 13
        }
        System.out.println(fibonacciRechner(1, 987, 1597)); // Prints: 2584
    }
 

weihnachtspyramide

Aktives Mitglied
Kein Problem :) Die Hilfsmethode hattest du ja schon, und es fehlte nur noch der korrekte Aufruf.

Die Hilfsmethode soll dabei allerdings mit:
return fibonacchiRechner(zahl, zahl -1, zahl -2)
aufgerufen werden.
Könnte es sein, dass hier fr( n, f(n-1), f(n-2) ) eigentlich gemeint war (fr ist die rekursive Hilfsmethode)? (Also mit "inneren" Aufrufen ...)

Lehrer sind ja meist etwas schlampig, wenn sie Aufgaben verteilen. :D
 

Timo2002

Mitglied
Könnte es sein, dass hier fr( n, f(n-1), f(n-2) ) eigentlich gemeint war (fr ist die rekursive Hilfsmethode)? (Also mit "inneren" Aufrufen ...)

Lehrer sind ja meist etwas schlampig, wenn sie Aufgaben verteilen. :D

Haha, ja genau das war mein Denkfehler. Hätte der Professor das ein wenig klarer formuliert, hätte ich mir paar Stunden ersparen können. :D
 

weihnachtspyramide

Aktives Mitglied
Haha, ja genau das war mein Denkfehler. Hätte der Professor das ein wenig klarer formuliert, hätte ich mir paar Stunden ersparen können. :D
Professoren sind auch nur Menschen :) Manche dürfen es sich erlauben, unklare Aufgaben zu stellen, wieder andere nicht :/

Btw, in fibonacci(int x) muss noch geprüft werden, ob das Argument "sinnvoll" wäre - denn es gibt keine Fibonacci-Zahlen für negative Werte (und für 0)
 

weihnachtspyramide

Aktives Mitglied
Zusätzlich bitte noch prüfen, ob das Ergebnis von b + c im positiven Integerbereich ist... Ist es dies nicht, bitte entsprechend reagieren...

Es sind wegen Über-/Unter-läufen schon Raketen abgestürzt. :( (Auch, wenn bei denen nicht Java eingesetzt wird... Es geht ja um clean code)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Abwandlung der Fibonacci Folge Java Basics - Anfänger-Themen 3
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
J Fibonacci-Reihe Java Basics - Anfänger-Themen 12
G Fibonacci Zahlenreihe Fehler Java Basics - Anfänger-Themen 4
D Fibonacci overflow integer Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
V Fibonacci Folge Java Basics - Anfänger-Themen 4
S Fibonacci Zahlen rekursiv Java Basics - Anfänger-Themen 1
A Fibonacci Zahlen Java Basics - Anfänger-Themen 1
M Methoden Fibonacci-Folge Java Basics - Anfänger-Themen 6
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
P Fibonacci -Verallgemeintert Java Basics - Anfänger-Themen 2
K Methoden Fibonacci in Array mit rekursiver Methoden Java Basics - Anfänger-Themen 19
M Fibonacci rekursiv mittels Cache Java Basics - Anfänger-Themen 17
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
K Fibonacci Zahlen Java Basics - Anfänger-Themen 3
B Fibonacci Zahlen rekursiv Array Java Basics - Anfänger-Themen 12
M Fibonacci-Folge mit while-Schleife Java Basics - Anfänger-Themen 4
P fibonacci - do while Statement Logik Fehler Java Basics - Anfänger-Themen 5
A Fibonacci-numbers Java Basics - Anfänger-Themen 9
K Rekursion Fibonacci Java Basics - Anfänger-Themen 3
J Fibonacci Zahlen berechnen Java Basics - Anfänger-Themen 3
Z Fibonacci rekursiv meine Erklärung stimmt so? Java Basics - Anfänger-Themen 2
Z Fibonacci Array Erklärung Java Basics - Anfänger-Themen 5
A Gerade Terme der Fibonacci-Folge aufsummieren Java Basics - Anfänger-Themen 12
M Fibonacci, Fakultaet, GGT Java Basics - Anfänger-Themen 9
C Fibonacci Zahlen Java Basics - Anfänger-Themen 7
J Ausgabe der fibonacci Zahlen Java Basics - Anfänger-Themen 4
S Fibonacci Folge Java Basics - Anfänger-Themen 34
D Fibonacci Java Basics - Anfänger-Themen 11
M Fibonacci-Linear und Rekursiv Java Basics - Anfänger-Themen 14
W Fibonacci Zahlenberechnung Java Basics - Anfänger-Themen 9
X Fibonacci mit durchschnittlicher Zeit Java Basics - Anfänger-Themen 5
I Fibonacci-Folge , direkter Weg. Java Basics - Anfänger-Themen 5
G Fibonacci Algorithmus Java Basics - Anfänger-Themen 22
0 Fibonacci Zahlen seeeehr schnell berechnen Java Basics - Anfänger-Themen 9
S Fibonacci Rückrechnung! Java Basics - Anfänger-Themen 5
K Fibonacci Zahlen Java Basics - Anfänger-Themen 2
K Programmieren von den ersten 70 Fibonacci-Zahlen Java Basics - Anfänger-Themen 2
G fibonacci was stimmt an meinem code nicht? Java Basics - Anfänger-Themen 2
S Fibonacci Zahlenvergeich Java Basics - Anfänger-Themen 6
G Iterativer Algorithmus zur Berechnung der Fibonacci Zahlen Java Basics - Anfänger-Themen 1
P Fibonacci-Zahlen Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
M Zufallszahl generieren mit einer linken und rechten Grenze Java Basics - Anfänger-Themen 3
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
sserio Prüfziffer einer ISBN Nummer herrausfinden. Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben