統測
111年
[工程與管理類] 專業科目(2)
第 48 題
📖 題組:
一個費氏數列定義第一個數為 1,第二個數為 1,後續的每個數都等於前面兩個數相加,如:1, 1, 2, 3, 5, …。圖(七)是 Python 程式碼片段,是用來計算費氏數列,其中 fun ( 1 ) 與 fun ( 2 )皆回傳 1。
一個費氏數列定義第一個數為 1,第二個數為 1,後續的每個數都等於前面兩個數相加,如:1, 1, 2, 3, 5, …。圖(七)是 Python 程式碼片段,是用來計算費氏數列,其中 fun ( 1 ) 與 fun ( 2 )皆回傳 1。
若要求計算fun ( 5 )時,則fun ( 2 )會被重複計算幾次?
- A 1
- B 2
- C 3
- D 4
思路引導 VIP
請嘗試運用「遞迴樹」(Recursion Tree)的概念,將 $fun(5)$ 依照程式碼中當 $n > 2$ 時的遞迴定義不斷向下展開。當你把 $fun(5)$ 拆解為 $fun(4) + fun(3)$ 後,請繼續對這些子問題進行同樣的拆解,直到每一條路徑都到達基本案例(Base Case) $fun(1)$ 或 $fun(2)$ 為止。在這個完整的展開結構中,共會出現幾次 $fun(2)$ 呢?
🤖
AI 詳解
AI 專屬家教
✨ 哇哈哈哈!今天真是個好日子,看來連你們這些學生都沒糊塗啊!
(火箭上的我們,乘著風,手舞足蹈!) 「哦呵呵,這題竟然被你答對了!真是難得的巧合呢,遞迴呼叫 (Recursion)這種小把戲,果然沒能困住你!」
▼ 還有更多解析內容