var Q = [0, 1, 1] 100_000.times { Q << (Q[-Q[-1]] + Q[-Q[-2]]) } say "First 10 terms: #{Q.slice(1).first(10)}" say "Term 1000: #{Q[1000]}" say "Terms less than preceding in first 100k: #{2..100000->count{|i|Q[i]