Fibonacci-Zahlen rekursiv

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hey, weiß nicht wies vielleicht den anderen Erstsemestlern im Prolog gegangen ist, vielleicht ist meine Frage auch sehr dumm oder so. Jedenfalls kann ich mir nicht vorstellen, dass jeder ohne Vorkenntnisse in java die Aufgabe mit der Fibonacci-Folge lösen konnte. Nach langem Herumprobieren und Suchen nach einem Algorithmus frage ich jetzt ganz einfach quer ins Forum hinein:

    WIE GEHT DAS??????? :mad::mad:

    Es geht darum das Element f(n) auszugeben, wenn f(n) = f(n-1) + f(n-2); meinem Verständnis nach soll aber nur die Zahl f(n) ausgegeben werden und nicht die komplette Folge bis zu dieser Zahl.

    "In der Informatik geht es genauso wenig um Computer, wie in der Astronomie um Teleskope."
    Edsger W. Dijkstra

    2 Mal editiert, zuletzt von fleckiboy (15. Oktober 2010 um 17:24)


  • Es geht darum das Element f(n) auszugeben, wenn f(n) = f(n-1) + f(n-2); meinem Verständnis nach soll aber nur die Zahl f(n) ausgegeben werden und nicht die komplette Folge bis zu dieser Zahl.

    Code
    public int fibonacci(int n) {
         if(n < 2) return 1;
         return fibonacci(n-1)+fibonacci(n-2);
    }

    lg, maciej

  • Normalerweise ja, in der Angabe ist f(0) aber witzigerweise 1.

    Rekursion + Funktionen sind btw nicht Themen des Prologs (zumindest nehm ich das mal stark an),

    @Threadersteller: Ist mit einer einzigen for-Schleife lösbar.

    Edit: Vllt. noch ein paar Hinweise:

    Du hast zwei Startwerte gegeben und mit jeweils zwei Werten kannst du den darauffolgenden berechnen. Das heißt du kannst f(10) bspw. nicht direkt berechnen, sondern musst schrittweise vorgehen. Berechne aus den ersten zwei Werten f(2), darauffolgend f(3), ... bis du bei f(eingabe) bist; das gibst du dann aus. Verwenden kannst du bspw. zwei Variablen für die zwei Elemente, eine für das jeweilige Rechenergebnis und eine für das eingelesene n.

    Hinweis: ab f(46) wirst du falsche Werte haben wegen einem int-Überlauf.

    6 Mal editiert, zuletzt von polymorph10 (15. Oktober 2010 um 18:25) aus folgendem Grund: ...

  • ok danke für eure hilfe

    Zitat

    Rekursion + Funktionen sind btw nicht Themen des Prologs (zumindest nehm ich das mal stark an)


    stimmt ja, deswegen war ich auch ein bisschen irritiert, den code den ihr mir gepostet habt hab ich auch schon im internet gefunden, wollte ihn aber nicht ganz einfach rauskopieren weil ich dachte vielleicht gibts eine lösung basierend auf den dingen die man im Prolog macht.
    jedenfalls danke!

    "In der Informatik geht es genauso wenig um Computer, wie in der Astronomie um Teleskope."
    Edsger W. Dijkstra

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!