免費開始練習
統測 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}$。
題組圖片
題組圖片
題組圖片
實作方式一採遞迴結構,如圖(十)所示,[空格]應填入的正確程式片段為何?
題目圖片
  • 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) 完全符合這個運算邏輯。

▼ 還有更多解析內容

🏷️ 相關主題

Python 程式邏輯與演算法實作
查看更多「[工程與管理類] 專業科目(2)」的主題分類考古題