btw昨天這邊也講錯了,把遞迴跟巢狀迴圈搞混了:遞迴是自己呼叫自己;巢狀迴圈是迴圈裡面又有迴圈。(可以參考參考1的連結介紹)
昨天解費波那契數,做遞迴迴圈的時候,在這行“return fib(N-1) + fib(N-2)”出現NameError的錯誤訊息,我覺得可能是self的關係,但是python的self我之前沒有用過、研究過,所以找了參考2連結,發現python的函式如果有用self的話,在自己呼叫自己(遞迴)的時候,要寫self.functionName才行。
所以我就把最後的修改成這樣:
def fib(self, N: int) -> int:
if N == 0:
return 0
elif N == 1:
return 1
else:
return self.fib(N-1) + self.fib(N-2)
改完之後就對了!Submit的結果如下:
參考1Python 初學第八講 — 遞迴
參考2python 類中的函式在class中的呼叫——self.function()