[問題] 利用遞迴寫 nCr

看板C_and_CPP作者 (綠茶咖啡)時間14年前 (2009/12/08 12:23), 編輯推噓3(304)
留言7則, 5人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 利用 for迴圈可以寫出排列組合中的nCr 但是老師這次要我們利用function call遞迴 寫nCr 並且提供遞迴式 巴斯卡定理-> nCr = (n-1)Cr + (n-1)C(r-1) .... 我除了想到先弄一個int C(int n, int r)之外..就不知道該怎麼辦了 囧 希望得到的正確結果: 利用巴斯卡定理寫出的nCr 而非利用階層相除 程式跑出來的錯誤結果: 完全想不到怎麼寫 囧 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) Ans=?????(不知道要寫甚麼XD) Ans = C (n-1,r) + C (n-1, r-1); return Ans; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.55

12/08 12:32, , 1F
int C(int n,int r){return C(n-1,r)+C(n-1,r-1);} 這樣?
12/08 12:32, 1F

12/08 12:33, , 2F
但是這樣很容易爆掉...XD\
12/08 12:33, 2F

12/08 12:50, , 3F
C(n,0)=1 C(n,n)=1 要加這兩個終止條件
12/08 12:50, 3F

12/08 13:17, , 4F
對吼 感謝樓上提醒...
12/08 13:17, 4F

12/08 14:36, , 5F
開個二維陣列存C(n,r)的值啊
12/08 14:36, 5F

12/08 17:12, , 6F
17956
12/08 17:12, 6F

12/09 03:46, , 7F
3Q..I get it ^_^
12/09 03:46, 7F
文章代碼(AID): #1B7TJ95O (C_and_CPP)