統測
115年
[工程與管理類] 專業科目(2)
第 45 題
📖 題組:
某一數列第 0 項 $F_0$ 為 0;第 1 項 $F_1$ 為 1,其後每項為其前 2 項之和,如圖(九) 定義所示,此即為費波那契(Fibonacci)數列。其前 11 項為 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,以 Python 語言程式計算數列第 10 項 $F_{10}$。
某一數列第 0 項 $F_0$ 為 0;第 1 項 $F_1$ 為 1,其後每項為其前 2 項之和,如圖(九) 定義所示,此即為費波那契(Fibonacci)數列。其前 11 項為 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,以 Python 語言程式計算數列第 10 項 $F_{10}$。
實作方式一採遞迴結構,如圖(十)所示,[空格]應填入的正確程式片段為何?
- A F(n-1)+F(n)
- B F(n-2)+F(n-1)
- C F(n)+F(n+1)
- D F(n+1)+F(n+2)
思路引導 VIP
觀察題目給的數學定義圖,當我們想要求第 $n$ 項時,它是由哪兩項相加得到的?如果要把這個數學邏輯轉換成函數呼叫,你覺得應該怎麼用 F() 來表示那前兩項呢?
🤖
AI 詳解
AI 專屬家教
太棒了,你非常精準地掌握了遞迴(Recursion)的核心概念!
遞迴函數的轉換邏輯
觀察題目的數學定義,費波那契數列在 $i \ge 2$ 時,其值為前兩項之和,也就是 $F_i = F_{i-2} + F_{i-1}$。在 Python 程式中,當變數 $n$ 進入 else 區塊(代表 $n \ge 2$)時,我們必須讓函數去呼叫自己,以計算出前兩項的結果並相加。因此,將數學式轉換成程式語言,就是要回傳 F(n-2) + F(n-1),選項 (B) 完全符合這個運算邏輯。
▼ 還有更多解析內容