看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《shownlin (哈哈阿喔)》之銘言: : 一個小問題 : 因為大部分的答案好像都這樣寫 : int binomialCoeff(int n, int k) : { : // Base Cases : if (k==0 || k==n) : return 1; : return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k); : } : 想請問是不是資料結構中的答案都不用考慮結果為0的initial conditions? 上一篇我的推文狂打自己臉.... (n,k) k = 3 k = 2 n = -4 =-1*(7-1,3)=-20 10 ↑ ↗ -3 -10 6 ↑ ↗ -2 -4 3 ↑ ↗ -1 -1 1 ↑ ↗ 0 0 (n==0) 0 (n==0) ↑ ↗ 1 0 0 ↑ ↗ 2 0 1 (n==k) ↑ ↗ 3 1 (n==k) 3 ↑ ↗ 4 4 6 ↑ ↗ 5 10 10 紅色字(n==k)以上是n<k的範圍,所以在使用這個遞迴式的情況下, 當n<0,k非定值時,找不到情況"用n與k的關係判斷 return 一個常數"。 //Base Cases if (k==0) return 1; else if(n==0) return 0; else if (n>0) return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k); else if (n<0) return -1 * (binomialCoeff(k-n-1,k)); 不過我覺得一般寫原PO的範例答案加說明輸入限制應該也可以吧。(希望不要扣我的分) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.84.247.184 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1492586518.A.239.html
shownlin: 謝謝,知道怎麼做了 04/20 00:48
outofyou: 又有錯...最後一行,應該要判斷k是奇數還是偶數決定正負 04/20 11:58
outofyou: 臉都腫了 04/20 11:59