Fibonacci sequence in Ruby (recursion)

后端 未结 24 1244
悲&欢浪女
悲&欢浪女 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:58

    Someone asked me something similar today but he wanted to get an array with fibonacci sequence for a given number. For instance,

    fibo(5)  => [0, 1, 1, 2, 3, 5]
    fibo(8)  => [0, 1, 1, 2, 3, 5, 8]
    fibo(13) => [0, 1, 1, 2, 3, 5, 8, 13]
    # And so on...
    

    Here's my solution. It's not using recursion tho. Just one more solution if you're looking for something similar :P

    def fibo(n)
      seed = [0, 1]
      n.zero? ? [0] : seed.each{|i| i + seed[-1] > n ? seed : seed.push(i + seed[-1])}
    end
    

提交回复
热议问题