利用递归巧妙实现组合
2014-09-30 20:40
218 查看
http://www.cnblogs.com/heyonggang/p/3642455.html 借鉴了该博客中的
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来</span></span>
list<char>list1; void combine(char *str,int m, int len,int n) { // 递归出口 if(m==len+1) return; // 输出找到的结果 if(0 == n) { for(list<char>::iterator iter = list1.begin(); iter != list1.end(); iter++) {cout << *iter ;} cout<<"\n"; return; } list1.push_back(str[m]); combine(str,m+1,len,n-1); //放第m个字符 list1.pop_back(); combine(str, m+1,len,n); //不放第m个字符 } int main() { char str[]="abcd"; combine(str,0,4,2); return 0; }
相关文章推荐
- USTC机试-利用递归实现组合数的输出
- 利用SQL SERVER 2005 中的CTE 实现树的递归
- 递归实现无重复组合
- 用递归实现排列组合
- 利用CSS3特性巧妙实现漂亮的DIV箭头
- 利用CSS3特性巧妙实现漂亮的DIV箭头
- 用递归实现排列组合取数(组合显示 例5选3等)
- 字符串的全组合非递归实现
- 输出一个数全排列的组合【利用哈密尔顿图遍历算法实现】
- C++实现递归实现数字的组合
- 巧妙利用DZ自有功能实现豆丁网在线文档功能
- 递归实现数字排列组合
- 利用CListCtrl和CTreeCtrl实现多边形划分三角形的组合分法(组合数学)
- 组合函数递归和非递归实现
- 利用DataRow替代DataReader来实现数据的递归
- 利用Java Reflection(反射)原理,在hibernate里面实现对单表、视图的动态组合查询
- 【原创】利用ajax技术实现动态双组合功能
- 利用递归实现不定重数多重循环
- 利用CSS3特性巧妙实现漂亮的DIV箭头
- 用递归实现从M个不同字符中选取N个字符的所有组合