要求:利用递归算法求出N个数,并从1-N这N个数中,任意取M个数(1

#include

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 {
dfs(N,M);
}

return 0;

}

N个数中选择M个数的组合(1_第1张图片