我理解Fibonacci的公式是如何工作的,而不是递归部分。 例如,fib(4)将调用fib(3)+ fib(2),那么什么?该方法如何确定fib(3)和fib(2)的值?我是Ruby的初学者,请原谅我问一个noob问题。
def fib num
return num if(0..1).include? num
fib(num-1) + fib(num-2)
end
答案 0 :(得分:4)
递归通过一次又一次地自我调用直到“断点”为止。发生。 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
答案 1 :(得分:1)