关闭

递归组合问题

240人阅读 评论(0) 收藏 举报
#include<stdio.h>
const int maxn=10;
int totalN,selectM;
int mat[10];//存储数组
int num[10];//输出数组
void solve(int startVar,int selectVar)
{
int i;
    if(selectVar>=selectM)
{
        for(i=0;i<selectM;++i)
printf("%d ", num[i]);
        puts("");
        return;
    }
    for(i=startVar;i<totalN;++i){
        num[selectVar]=mat[i];
        solve(i+1,selectVar+1);
    }
}
int main()
{
int i;
    while(scanf("%d%d", &totalN, &selectM)!=EOF)
{
        for(i=0;i<totalN;++i)
mat[i]=i+1;
        solve(0,0);
    }
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4738次
    • 积分:99
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:9篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档