【发布时间】:2012-08-24 02:31:22
【问题描述】:
我正在尝试实现以下功能,但它一直给我stack level too deep (SystemStackError) 错误。
任何想法可能是什么问题?
def fibonacci( n )
[ n ] if ( 0..1 ).include? n
( fibonacci( n - 1 ) + fibonacci( n - 2 ) ) if n > 1
end
puts fibonacci( 5 )
【问题讨论】:
-
无论如何都会在您的代码中进行递归调用,因为
[n] if ...在评估一个值时不会中止方法执行。