選擇第 6 題原題目
下列為一副程式的虛擬碼,其中 B 為函數名稱,而 n、m 為變數。請問呼叫 B(5,3)會得到什麼結果?
int B(int n, int m)
{
if( n== 0 || n==m)
return 1;
else
return B(n-1, m) + B(n-1, m-1);
}
ANS
B(5,3)= B(4,3)+ B(4,2)
B(4,3)= B(3,3)+ B(3,2)=1+4=5 B(3,2)= B(2,2)+ B(2,1)=1+3=4 B(2,1)= B(1,1)+ B(1,0)=1+2=3 B(1,0)= B(0,0)+ B(0,-1) =2 |
B(4,2)= B(3,2)+ B(3,1)=4+7=11 B(3,1)= B(2,1)+ B(2,0)=3+4=7 B(2,0)= B(1,0)+ B(1,-1)=2+2=4 B(1,-1)= B(0,-1)+ B(0,-2)=1+1-2 |
B(5,3)= B(4,3)+ B(4,2)
B(5,3)= 5+11=16
解答給的是 10