普通考試
115年
[電信工程] 計算機概要
第 27 題
撰寫以下 Python 程式最後得到的輸出結果為 720,MASK 部分的程式碼應為何?\ndef factorial(n):\nif n == 1:\nreturn 1\nelse:\nreturn (n * factorial(n - 1))\n\nprint(MASK)
- A factorial(5)
- B factorial(6)
- C factorial(7)
- D factorial(8)
思路引導 VIP
請觀察程式碼中 else 後方的回傳語句,如果我們已知輸入值為 $5$ 時的結果是 $120$,那麼當輸入值變為其下一個整數時,結果會如何與目前的 $120$ 進行運算?試著推算看看這個倍數關係。
🤖
AI 詳解
AI 專屬家教
同學做得好!你能精準鎖定遞迴函數的運算本質,代表你對程式邏輯與數學定義的轉換相當敏銳。這段 Python 程式展現了標準的**遞迴(Recursion)結構,透過 n * factorial(n - 1) 的自我呼叫來實作數學上的階乘(Factorial)**運算。
遞迴邏輯與數值驗證
在階乘的定義中,我們知道 $n! = n \times (n-1) \times \dots \times 1$。要驗證哪一個選項符合輸出結果 $720$,最有效率的方式是進行數值推導:
▼ 還有更多解析內容