gpt4 book ai didi

ruby - Ruby 中的斐波那契数列(递归)

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:03 24 4
gpt4 key购买 nike

我正在尝试实现以下功能,但它一直给我 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 )

最佳答案

试试这个

def fibonacci( n )
return n if ( 0..1 ).include? n
( fibonacci( n - 1 ) + fibonacci( n - 2 ) )
end
puts fibonacci( 5 )
# => 5

也检查这篇文章 Fibonacci One-Liner

还有更多.. https://web.archive.org/web/20120427224512/http://en.literateprograms.org/Fibonacci_numbers_(Ruby)

你现在已经被许多解决方案轰炸了:)

关于你的解决方案中的问题

如果它是 01,你应该返回 n

and add 最后两个数字不是 last 和 next

New Modified version

def fibonacci( n )
return n if n <= 1
fibonacci( n - 1 ) + fibonacci( n - 2 )
end
puts fibonacci( 10 )
# => 55

One liner

def fibonacci(n)
n <= 1 ? n : fibonacci( n - 1 ) + fibonacci( n - 2 )
end
puts fibonacci( 10 )
# => 55

关于ruby - Ruby 中的斐波那契数列(递归),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com