内容目录
char result[20];//用于存放结果 char raw[n];//用于存放原始数据 bool mark[20];//是否选定标记 void dfs(int k)//k为当前选定标记 { if (k == m) { if (测试满足条件) //todo; } else { for (int i = 0; i < n; i++) { if (mark[i] == 0) { mark[i] = true; b[k] = s[i];//从s选出一个元素 dfs(k + 1); mark[i] = false; } } } }
经测试满足排列组合数C(m,n)*A(m,m)