C语言 | 您所在的位置:网站首页 › 在哪里可以看到公众号粉丝数 › C语言 |
组合不重复数
问题引入:
1.不重复的情况: 例如ABCDE,让你从里面选出3个,问你一共有多少种可能,我们可以直接递归进行列举一共有多少种。下面看代码: #include int m,n; int f(int m,int n) //共有m个球 取n个球 { if(n == m){ //当堆里的数目 和 我们想拿的相同时 只有一种情况 return 1; } if(n == 0){ //n=0 也是一种取法 return 1; } return f(m-1,n-1) + f(m-1,n); //从m-1的堆里取球 取到我们想要的再取n-1个 //否则再取n } int main() { printf("%d",f(5,3)); return 0; }组合重复数 问题引入: 2 重复情况: 例如AABBBC ,让你从这些字母中选出三个进行组合,你肯定不能枚举,这样你会发现打印出来有重复的。 #includeint data[3];int x[3]; int min(int a,int b) //返回最小值 { if(a > b){ return b; } if(b > a){ return a; }}void work(int x[]) //打印数组 { int i; for(i=0;i |
CopyRight 2018-2019 实验室设备网 版权所有 |