1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Fibonacci-Zahlen rekursiv

  • fleckiboy
  • 15. Oktober 2010 um 17:05
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • fleckiboy
    Punkte
    100
    Beiträge
    13
    • 15. Oktober 2010 um 17:05
    • #1

    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.

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

  • maciej
    Punkte
    50
    Beiträge
    10
    • 15. Oktober 2010 um 17:47
    • #2
    Zitat von fleckiboy


    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

  • Paulchen
    Gast
    • 15. Oktober 2010 um 17:54
    • #3
    Zitat von maciej
    Code
    public int fibonacci(int n) {
         if(n < 2) return 1;
         return fibonacci(n-1)+fibonacci(n-2);
    }

    lg, maciej


    f[t]0[/t] ist aber 0 ;)

  • polymorph10
    Punkte
    270
    Beiträge
    50
    • 15. Oktober 2010 um 17:57
    • #4

    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: ...

  • maciej
    Punkte
    50
    Beiträge
    10
    • 15. Oktober 2010 um 20:43
    • #5
    Zitat von Paulchen

    f[t]0[/t] ist aber 0 ;)


    dann ersetze man eben "if(n <2) return 1;" durch "if(n<2) return n;" :)

  • fleckiboy
    Punkte
    100
    Beiträge
    13
    • 15. Oktober 2010 um 22:56
    • #6

    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!

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum