Ruby中的斐波纳契序列(递归)
发布时间:2020-12-16 22:23:35 所属栏目:百科 来源:网络整理
导读:我试图实现以下功能,但它不断给我堆栈级别太深(SystemStackError)错误. 任何想法可能是什么问题? def fibonacci( n ) [ n ] if ( 0..1 ).include? n ( fibonacci( n - 1 ) + fibonacci( n - 2 ) ) if n 1endputs fibonacci( 5 ) 解决方法 尝试这个 def fibo
我试图实现以下功能,但它不断给我堆栈级别太深(SystemStackError)错误.
任何想法可能是什么问题? def fibonacci( n ) [ n ] if ( 0..1 ).include? n ( fibonacci( n - 1 ) + fibonacci( n - 2 ) ) if n > 1 end puts fibonacci( 5 ) 解决方法
尝试这个
def fibonacci( n ) return n if ( 0..1 ).include? n ( fibonacci( n - 1 ) + fibonacci( n - 2 ) ) end puts fibonacci( 5 ) # => 5 检查这个帖子也是Fibonacci One-Liner 更多.. http://en.literateprograms.org/Fibonacci_numbers_(Ruby) 你现在已经被许多解决方案轰炸了:) 关于问题在解决方案 你应该返回n,如果它的0或1 并添加最后两个数字不是最后和下一个
def fibonacci( n ) return n if n <= 1 fibonacci( n - 1 ) + fibonacci( n - 2 ) end puts fibonacci( 10 ) # => 55
def fibonacci(n) n <= 1 ? n : fibonacci( n - 1 ) + fibonacci( n - 2 ) end puts fibonacci( 10 ) # => 55 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |