Fibonacci sequence in Ruby (recursion)

后端 未结 24 1272
悲&欢浪女
悲&欢浪女 2020-12-01 02:54

I\'m trying to implement the following function, but it keeps giving me the stack level too deep (SystemStackError) error.

Any ideas what the problem mi

24条回答
  •  日久生厌
    2020-12-01 03:51

    1) Example, where max element < 100

    def fibonachi_to(max_value)
      fib = [0, 1]
      loop do
        value = fib[-1] + fib[-2]
        break if value >= max_value
        fib << value
      end
      fib
    end
    
    puts fibonachi_to(100)
    

    Output:

    0
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89
    

    2) Example, where 10 elements

    def fibonachi_of(numbers)
      fib = [0, 1]
      (2..numbers-1).each { fib << fib[-1] + fib[-2] }
      fib
    end
    
    puts fibonachi_of(10)
    

    Output:

    0
    1
    1
    2
    3
    5
    8
    13
    21
    34
    

提交回复
热议问题