C++组合问题
2013-07-01 16:23
169 查看
求一个组合,如C(16,3),我们可以通过公式求出这有多少个数,但怎么把这些数表示出来呢?
代码:
代码:
#include<iostream> #include<stdio.h> #define MAXN 100 using namespace std; int a[MAXN]; int count=0; void assem(int m,int k) { int i,j; for (i=m;i>=k;i--) { a[k]=i; if (k>1) assem(i-1,k-1); else { count++; /*显示排列数 for (j=a[0];j>0;j--) { cout<<a[j]<<" "; } cout<<endl;*/ } } } int main() { int m,r; cout<<"m="; cin>>m; cout<<"r="; cin>>r; a[0]=r; assem(m,r); cout<<count<<endl; return 0; }例如,我们要求C(16,3),我们应该是先从16个数里取1个数【变成C(16,1)】,再从余下的15个数里取一个数【变成C(15,1)】,最后从余下的14个数里取一个数【变成C(14,1)】就完成了。因此这个过程很容易通过递归的方式实现。
相关文章推荐
- C/C++面试之算法系列--如何利用数学思想解1/2/5组合问题
- C++:数组排列组合的问题。
- C/C++面试之算法系列--如何利用数学思想解1/2/5组合问题
- 组合问题的一般C++解法
- 我的第二十四个C++上机报告(穷举法解决组合问题之百钱百鸡问题)
- C++递归问题之三---0-1背包问题:给定两个值value和num,在1到num之间取值使这些数和为value,输出所有组合
- 2014秋C++第9周项目6参考-穷举法解决组合问题
- 用C++实现的全组合问题
- C++中const和指针*的组合问题
- C++第四次实验-穷举法解决组合问题
- C/C++ 组合问题
- C/C++ 使用rand()组合形式生成大于15位的随机数时存在的问题
- 打印所有的组合(组合问题C++实现)
- 我的第二十三个C++上机报告(穷举法解决组合问题之小明借书问题)
- C++实验4-穷举法解决组合问题
- c++实验4-项目7(3)穷举法解决组合问题三色球问题
- C++第四次实验—穷举法解决组合问题
- C++组合和继承 组合中会涉及到默认构造函数和拷贝构造函数的问题
- C/C++ 排列组合问题(递归)
- C++组合问题