下列程式是 C 語言的函式(function),請問呼叫 C(5,4)的結果為何?呼叫 C(5,4)後,此 C 函式總共被呼叫幾次才計算出結果? int C (int n, int k) { if((k==0) || (n==k)) return 1; else return (C(n-1, k)+C(n-1, k-1)); }
A5, 8 次正確答案
B4, 7 次
C5, 9 次
D6, 8 次
答案與詳解
C(5,4) 數學上即 C(5取4)=5,結果為 5。遞迴展開樹:C(5,4)→C(4,4)+C(4,3);C(4,4)=1(葉);C(4,3)→C(3,3)+C(3,2);C(3,3)=1(葉);C(3,2)→C(2,2)+C(2,1);C(2,2)=1;C(2,1)→C(1,1)+C(1,0)=1+1。計數所有被呼叫節點共 8 次。
