開始使用免費開始

計算函式呼叫次數

來看一個經典的遞迴範例——費波那契數列。它由非負整數組成,從 0 開始,每個元素 \(F(n)\) 等於前兩個元素的總和:0, 1, 1, 2, 3, 5, 8, 13, 21, ...。你拿到了一個函式,會回傳一個 tuple,內容是數列的第 \(n\) 個元素,以及在運算過程中呼叫 fib() 的次數:

def fib(n):

  if n < 2:
    return (n, 1)

  fib1 = fib(n-1)
  fib2 = fib(n-2)

  return (fib1[0] + fib2[0], fib1[1] + fib2[1] + 1)

要計算此數列的第 \(15^{th}\) 與第 \(20^{th}\) 個元素,共需要呼叫 fib() 幾次?

本練習屬於課程

Python 程式面試題實作練習

檢視課程

動手互動練習

將理論付諸實踐,立即體驗我們的互動練習

開始練習