[問題] 組合數 enumeration 的泛化

看板C_and_CPP作者 (小乖)時間15年前 (2010/07/19 10:04), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
C(5,3) 給一組合數 m,n 要能印出如下的結果 (順序不 care) 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 光是 C(5,3) 我可以用巢狀迴圈來達成 如下: for(int i=3;i<6;i++) for(int j=2;j<i ;j++) for(int k=1;k<j;k++){ cout << k << " " << j << " " << i << " " << endl; } 但若是給 general 的 m,n 來做有沒有甚麼好方法呢? 請各位大大提供一下意見~ 謝謝 ps. 最終的目標是想用 template template <int M,int N> C(){} ... 直接搞定~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.172.74

07/19 10:10, , 1F
你需要遞迴 backtracking
07/19 10:10, 1F

07/19 10:22, , 2F
google是你的良伴= =a
07/19 10:22, 2F

07/19 10:53, , 3F
謝謝 L 大 我試試看
07/19 10:53, 3F
文章代碼(AID): #1CGxAjsJ (C_and_CPP)