以下是我想到的两个版本的斐波那契
def fibonacci( n )
return n if ( 0..1 ).include? n
( fibonacci( n - 1 ) + fibonacci( n - 2 ) )
end
puts fibonacci( 5 )
def fib(n)
if n == (0..1)
return n
elsif
return fib(n-1) + fib(n-2)
end
end
puts fib(5)
为什么要做第二次工作?
答案 0 :(得分:2)
因为n == (0..1)
是一个数字,所以永远不会满足n
。范围0..1
不是数字。最低要求是:
(0..1) === n
答案 1 :(得分:2)
您需要移除elsif
以支持else
(因为您没有案例),并且还要反转===
def fib(n)
if (0..1) === n
return n
else
return fib(n-1) + fib(n-2)
end
end
puts fib(5)