1
我有下面的代碼,試圖找到Fibonacci序列的第一個數字超過1000位:在groovy中執行遞歸函數300+次時解決堆棧溢出錯誤?
z = 0g
def fib
fib = {a,b->
if(a <= 10g**1000){
z++
fib(b.toBigInteger(), (a+b).toBigInteger())
}else{
return z
}
}
fib(1,2)
當我改變「1000」到〜300或更低此功能,並計算井在半秒鐘之內。
但是,當我將這個變量提升到上面時,我得到一個堆棧溢出。我看到了另一個關於這個的問題,答案是使用一個名爲「doall」的函數,但在Groovy中我沒有看到。
我的數字解決方案是非常簡單的,在這一點上,但我不知道到哪裏尋找它...
任何人都可以幫我嗎?
非常感謝!
工作就像一個魅力,非常感謝你! –