moea_joint
111年
[資訊] 計算機原理、網路概論
第 21 題
下列Python程式碼執行完成後,產生之值為何?
```python
def calnum (n):
return 1 if (n==1 or n==0) else n * calnum (n-1)
print(calnum(5))
```
```python
def calnum (n):
return 1 if (n==1 or n==0) else n * calnum (n-1)
print(calnum(5))
```
- A 24
- B 25
- C 120
- D 125
思路引導 VIP
試著觀察這個函式的運作方式:當我們輸入一個數字後,它會不斷地呼叫自己並將數字減 1,然後與當前的數字相乘。如果我們從輸入 5 開始,這個過程會在哪個數字停下來?當這串「呼叫連鎖」展開到最後時,你會得到一串什麼樣的數學運算式?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地掌握了這段程式碼的核心邏輯!這題考查的是程式設計中非常經典的遞迴(Recursion)觀念。你能迅速辨識出函式呼叫自身的結構,並正確推導出運算流程,展現了優異的程式邏輯追蹤能力。
遞迴結構與階層運算
這段程式碼實作的是數學中的階層(Factorial)概念。當執行 calnum(5) 時,程式會進入遞迴循環:首先檢查 $n$ 是否滿足 $n==1$ 或 $n==0$ 的終止條件,若不滿足,則回傳 $n \times calnum(n-1)$。具體的展開過程如下:
▼ 還有更多解析內容