iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 21
0

前情提要

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的結果如下:
https://ithelp.ithome.com.tw/upload/images/20190922/201133933QqmePLcfT.png

參考資料

參考1Python 初學第八講 — 遞迴
參考2python 類中的函式在class中的呼叫——self.function()


上一篇
#509 Fibonacci Number
下一篇
#509 Fibonacci Number - 研究其他解法
系列文
Leetcode新手挑戰30天31

尚未有邦友留言

立即登入留言