• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Fibonacci-Folge

jocarid

New member
Hallo zusammen,
Ich sollte als Übung die Fibonacci-Folge programmieren und mir alle Fibonacci-Zahlen die kleiner als 1000 sind, rausgeben lassen.
Nun was ich bis jetzt habe:

for (var f = 1; f < 1000; ........)
{
document.write(f);
}

Nun was kommt anstelle der roten Punkte?

lg jocarid
 
Nein so gibt er mir doch alle Zahlen von 1 bis 1000 raus oder?
Ich will aber: 1,1,2,3,5,8 usw. (immer die Zahl ist die Summe der beiden vorhergehenden!)
 
Code:
var fibonacci=1;
while (fibonacci < 1000)
{
	// Algorithmus zum Ermitteln der nächsten Fibonacci-Zahl
	document.write(fibonacci+" ");
}

Es kann aber sein, das Du ein Array brauchst, um die letzten beiden Fibonacci-Zahlen zu speichern.
 
Ich sollte als Übung die Fibonacci-Folge programmieren und mir alle Fibonacci-Zahlen die kleiner als 1000 sind, rausgeben lassen.
Wo ist denn da bitte die Übung, wenn Du Dir den eigentlichen Knackpunkt der Erzeugung, der Zahlenreihe von anderen bauen läßt?
Deine Hausaufgaben solltest Du schon selbst machen. Und die Fibonacci-Reihe ist jetzt nun wirklich nicht schwer.
 
@ albu: also zuerst einmal ich bin ein totaler Anfänger (habe etwa vor 3 Tagen angefangen!) und zweitens hab ich ja selbst versucht die Übung zu lösen, aber nicht geschafft!

EDIT: @ albu: wenns so einfach ist, gib mir doch mindestens einen Tipp.
 
Zuletzt bearbeitet:
@ albu: also zuerst einmal ich bin ein totaler Anfänger (habe etwa vor 3 Tagen angefangen!)
Ganze drei Tage schon? Wenn das so ist, dann muss man ja unbedingt Deine Aufgabe für Dich lösen.

und zweitens hab ich ja selbst versucht die Übung zu lösen, aber nicht geschafft!
Das ist normal und geht vorrüber.

EDIT: @ albu: wenns so einfach ist, gib mir doch mindestens einen Tipp.
fibb(i) = fibb(i-1) + fibb(i-2) für alle i größer 1
fibb(0) = 1
fibb(1) = 1
Das ganze kann man mit einer iterativen oder einer rekursiven Funktion lösen. Die Rekursion verbrät dabei allerdings einiges an Ressourcen und macht vieles unnötigerweise doppelt und dreifach.
 
Das ganze kann man mit einer iterativen oder einer rekursiven Funktion lösen. Die Rekursion verbrät dabei allerdings einiges an Ressourcen und macht vieles unnötigerweise doppelt und dreifach.
... dann wäre der Ansatz über ein Speicherarray wahrscheinlich effektiver:
neuer Eintrag = letzter Eintrag + vorletzer Eintrag
 
... dann wäre der Ansatz über ein Speicherarray wahrscheinlich effektiver:
neuer Eintrag = letzter Eintrag + vorletzer Eintrag
Da sowieso alle Zahlen ausgegeben werden sollen, braucht man kein Array, um die Werte zwischenzuspeichern, weil man sie ja einfach aufsteigend generieren und sofort anzeigen lassen kann.
 
Hallo zusammen,

wie so viele vor mir möchte ich die Fibonacci-Folge als Skript schreiben.

Die Schleife soll sich 10 mal wiederholen (einfache while). Als erstes Zwischenergebnis soll 0 oder 1 ausgegeben werden - und da hakt es bei mir. Als niedrigsten Wert erhalte ich zwei (die nachfolgende Berechnung ist dann korrekt). Änder ich den Wert auf zahl1, ist das erste Zwischenergebnis zwar 0, aber die darauf folgende Berechnung ist falsch.

Kann mir jemand einen Hinweis geben, wo mein Denkfehler ist?

HTML:
var zahl1 = 0
var zahl2 = 1
var zahl3 = 2
var zahl4 

while (zahl1<=10) {
    zahl4 = zahl2 + zahl3
    zahl2 = zahl3
    zahl3 = zahl4
          
    console.log("Zwischenergebnis",zahl2)
    
    zahl1 ++
}

console.log("Ergebnis",zahl4)
 
Zuletzt bearbeitet von einem Moderator:
Noob42: bitte korrigiere den gezeigten Code so, wie du ihn bei dir tatsächlich laufen hast.

Das ist der Code, so wie ich ihn laufen lasse:

HTML:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />#
    <title>Fibonacci Iterative</title>
  </head>
  <body>
    <main>
      <ol id="fibonacci"></ol>
    </main>

    <script src="./Fibonacci-while-4.0.js"></script>
  </body>
</html>

var zahl1 = 0
var zahl2 = 1
var zahl3 = 2
var zahl4 

while (zahl1<=10) {
    zahl4 = zahl2 + zahl3
    zahl2 = zahl3
    zahl3 = zahl4
          
    console.log("Zwischenergebnis",zahl2)
    
    zahl1 ++
}

console.log("Ergebnis",zahl4)

- - - Aktualisiert - - -

Die Fibonacci-Folge beginnt mit 0,1 oder 1,1 und nicht mit 1,2. Wenn du in deinem Code zahl2 mit 0 und zahl3 mit 1 initialisiert bekommst du 1 als erstes Zwischenergebnis.

Geschafft, danke
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben