Fel*_*ida 0 ruby algorithm recursion
我试图用Ruby做一个递归算法,我不能这样做,所以我不断弹出堆栈,每次我尝试一个更简单的递归算法,看看我的错误在哪里..
但我到达了这个:
def fact(n)
if n==0
1
else
fact(n)*fact(n-1)
end
end
puts fact(5)
Run Code Online (Sandbox Code Playgroud)
和
ruby/part2.rb:81: stack level too deep (SystemStackError)
Run Code Online (Sandbox Code Playgroud)
好的,发生了什么?
是不是可以在Ruby中制作递归算法?
你的算法不正确,它应该是这样的
def fact(n)
if n==0
1
else
n*fact(n-1)
end
end
puts fact(5)
Run Code Online (Sandbox Code Playgroud)