c++ 穷举组合的所有情况
答案:2 悬赏:20
解决时间 2021-01-25 02:51
- 提问者网友:人生佛魔见
- 2021-01-24 18:55
c++ 穷举组合的所有情况
最佳答案
- 二级知识专家网友:鸽屿
- 2021-01-24 20:09
从n个数中取m个数的组合,一般会用到递归,如下
#include
int s[20];
void Comb(int step, int n, int m)
{
int i;
if((m == 0) || ((n - step) == m)) {
for(i = step; i < n; i++)s[i] = (m != 0);
for(i = 0; i < n; i++)
printf("%-3d", s[i]);
printf("\n");
return;
}
s[step] = 1, Comb(step + 1, n, m - 1);
s[step] = 0, Comb(step + 1, n, m);
}
void main( )
{
int n, m;
scanf("%d%d", &n, &m);
Comb(0, n, m);
}
#include
int s[20];
void Comb(int step, int n, int m)
{
int i;
if((m == 0) || ((n - step) == m)) {
for(i = step; i < n; i++)s[i] = (m != 0);
for(i = 0; i < n; i++)
printf("%-3d", s[i]);
printf("\n");
return;
}
s[step] = 1, Comb(step + 1, n, m - 1);
s[step] = 0, Comb(step + 1, n, m);
}
void main( )
{
int n, m;
scanf("%d%d", &n, &m);
Comb(0, n, m);
}
全部回答
- 1楼网友:刀戟声无边
- 2021-01-24 20:46
我暂时保留我的看法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯