2016-03-24 11 views
0

Könnte mir jemand eine kurze Erklärung geben, warum n + (n-1) nicht funktioniert? Mathematisch funktioniert es, aber ich bin mir nicht sicher, wie ich Ruby sagen soll, das ist was ich suche? Wie der Titel andeutet, soll der Code eine Fibonacci-Sequenz zurückgeben.Fibonacci-Nummer in einer Reihe (Rubin)

startyear = [] 
(1..100).each do |n| 
    puts n+(n-1) 
    startyear.push(n) 
end 
+0

Mögliche Duplikat von [Fibonacci-Sequenz in Ruby (Rekursion)] (http://StackOverflow.com/Questions/12178642/Fibonacci-Sequence-in-Ruby-Recursion) –

Antwort

2

n+(n-1) = 2n-1. Ihr Code zeigt einfach 2n-1 (1,3,5,7, .., 199) an.

Auf der anderen Seite, startyear.push(n) drückt Zahlen (1,2,3,., 100) in die startyear Array. Ich glaube, du wolltest so etwas machen.

startyear = [1,1] 
(2..100).each do |n| 
    puts (new_num = startyear[n-1] + startyear[n-2]) 
    startyear.push(new_num) 
end 

Aber noch einmal, ich bin nicht 100% sicher, was der Bereich für im Code steht, so dass ich könnte falsch sein.

+0

der Bereich soll brechen, um den Wert zu codieren erreicht => 100 – whatabout11

+0

Ich denke das beantwortet meine Frage, ich habe eine Pause in den Code eingefügt. Vielen Dank! – whatabout11