N个数中选择M个数的组合(1MN)
生活随笔
收集整理的這篇文章主要介紹了
N个数中选择M个数的组合(1MN)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要求:利用遞歸算法求出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;
}
轉載于:https://blog.51cto.com/dingxiaowei/1366460
總結
以上是生活随笔為你收集整理的N个数中选择M个数的组合(1MN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos 事件分发2
- 下一篇: 关于新建这个博客