程式設計基礎(虛擬碼追蹤)
以 c(4, 2) 呼叫下列函式 c 時,c 被呼叫的次數(含第一次呼叫)為下列何者?
○整數型: c(整數型: n, 整數型: k)
if (k = 0 or k = n)
return 1
endif
return c(n − 1, k − 1) + c(n − 1, k)
- A5
- B6
- C11
查看答案與解析
正確答案:C. 11
c(n, k) 以巴斯卡三角形的關係,求從 n 個中選出 k 個的組合數(二項式係數)。c(4, 2) 呼叫 c(3, 1) 與 c(3, 2),它們再分別呼叫 c(2, 0) 與 c(2, 1)、c(2, 1) 與 c(2, 2),出現兩次的 c(2, 1) 都會呼叫 c(1, 0) 與 c(1, 1)。回傳1的呼叫有6次,進行兩個呼叫的呼叫有5次,合計11次。回傳值為6,與回傳1的呼叫次數一致。
- A. 這是只計算進行兩個呼叫的呼叫次數的值。回傳1的6次也要計算。
- B. 這是回傳值 c(4, 2) = 6,不是被呼叫的次數。
- C. 正確。回傳1的6次加上進行兩個呼叫的5次。