N个数中选择M个数的组合(1<M<N)

简介: 要求:利用递归算法求出N个数,并从1-N这N个数中,任意取M个数(11){dfs(i-1,m-1);}else{for(int j=1;j

要求:利用递归算法求出N个数,并从1-N这N个数中,任意取M个数(1<M<N)的所有组合情况,用递归实现!

#include<stdio.h>

const int MAX = 10;
int g[MAX],N,M;
void dfs(int n,int m)
{
//int sum;//和 
for(int i=n;i>=1;i--)
{
g[m] = i;
if(m>1)
{
dfs(i-1,m-1);
}
else
{
for(int j=1;j<=M;j++)
{
printf("%d",g[j]);
//sum+=g[j]; 
}
/*
if(sum == n)
{
for(int j=i;j<=M;j++)
{
printf("%d",g[j]);
}
printf("\n");
}
*/
printf("\n");
}
}



int main()
{
/*
N=5,M=3;
dfs(N,M);
*/

printf("请输入和:");
scanf("%d",&N);
for(M=2;M<N;M++)
{
dfs(N,M);
}

return 0;

}


相关文章
|
2月前
|
SQL
条件构造器,MybatisPlus支持各种复杂的where条件,其实就是Wrapper,eq是等于的意思,相当于等于那个数值,ne就是不等于,gt大于的意思,ge大于等于,QueryWrapper是做
条件构造器,MybatisPlus支持各种复杂的where条件,其实就是Wrapper,eq是等于的意思,相当于等于那个数值,ne就是不等于,gt大于的意思,ge大于等于,QueryWrapper是做
|
4月前
|
Java 编译器 C++
位1的个数(C++)
位1的个数(C++)
39 0
|
4月前
287--寻找重复数-indexOf-&&-sort
287--寻找重复数-indexOf-&&-sort
26 1
|
4月前
|
机器学习/深度学习 算法 数据处理
盘点四种计算数组中元素值为1的个数的方法
盘点四种计算数组中元素值为1的个数的方法
47 0
|
4月前
|
算法 前端开发
1128. 等价多米诺骨牌对的数量
1128. 等价多米诺骨牌对的数量
32 0
|
测试技术
List分割:等分成n个list;指定元素个数n等分
List分割:等分成n个list;指定元素个数n等分
648 0
|
JavaScript 人工智能
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度?
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度?
306 0
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度?
统计字符串中元素的个数(多种方法)
统计字符串中元素的个数(多种方法)
166 0
统计字符串中元素的个数(多种方法)
有一个整数数组,长度为9,数组里的值是多少不清楚,但是知道数组中有8个值是相等,其中一个小于其他8个值,目前有一个标准函数,compare(int[] a, int[] b),返回0相等1大于
有一个整数数组,长度为9,数组里的值是多少不清楚,但是知道数组中有8个值是相等,其中一个小于其他8个值,目前有一个标准函数,compare(int[] a, int[] b),返回0相等1大于