【问题标题】:How this Fibonacci code(Ruby) works? [duplicate]这个斐波那契代码(Ruby)是如何工作的? [复制]
【发布时间】:2016-11-25 09:13:31
【问题描述】:

我了解斐波那契公式的工作原理,但不了解递归部分。 例如,fib(4) 会调用 fib(3) + fib(2),那么呢?该方法如何确定 fib(3) 和 fib(2) 的值?我是 Ruby 的初学者,所以请原谅我问了一个菜鸟问题。

def fib num
    return num if(0..1).include? num
    fib(num-1) + fib(num-2)
end

【问题讨论】:

标签: ruby recursion fibonacci


【解决方案1】:

递归的工作原理是一次又一次地调用自身,直到“断点”发生。 Fib(4) 调用 fib(3) 和 fib(2),fib(3) 调用 fib(2) 和 fib(1)... 方法将 fib(1) 和 fib(0) 的值指定为1.

让我试着直观地解释一下:

> fib(4) =         fib(3)                 +            fib(2) 
> =>       fib(2)        +   fib(1)       +        fib(1)  +  fib(0)
> =>   fib(1) + fib(0)   +   1            +          1     +   1

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 2018-06-12
      • 2018-06-03
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      相关资源
      最近更新 更多