[問題] 請問排列組合的遞迴呼叫次數計算

看板C_and_CPP作者 (sugar)時間14年前 (2011/05/05 01:44), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
以下程式會算出 C(N, M),即從 N 個物品中選出 M 個物品的方法數量。 如果 count 的值原先為 0 ,請問計算 C(5, 3) 後,count 的值為何? unsigned int count = 0; unsigned int getC(unsigned int N, unsigned int M){ count++; if (N == 0) return (N == M ? 1 : 0); else if (M == 0) return 1; else return getC(N-1, M) + getC(N-1, M-1); } 請問count值最後是多少 (A) 5 (B) 15 (C) 51 (D) 63 我一直算出26耶~ 有人答案給D 有人答案給C 所以答案到底是....? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.120.40.135

05/05 01:47, , 1F
你有執行過這隻程式嗎?何不實際跑跑看呢?
05/05 01:47, 1F

05/06 01:24, , 2F
我把他複製下來 我電腦的結果是(C)51
05/06 01:24, 2F
文章代碼(AID): #1DmP1ey4 (C_and_CPP)
文章代碼(AID): #1DmP1ey4 (C_and_CPP)