组合suan

/// 求从数组a[1..n]中任选m个元素的所有组合。
/// a[1..n]表示候选集,n为候选集大小,n>=m>0。
/// b[1..M]用来存储当前组合中的元素(这里存储的是元素下标),
/// 常量M表示满足条件的一个组合中元素的个数,M=m,这两个参数仅用来输出结果。
 
 
 
#include<stdio.h>

void combin(int a[],int n,int m,int b[],int M)
{
    int i;
    for(i = n;i>=m;i--)
//循环确定每一轮的最大值,最大值的范围是n~m
    {
        b[m-] = i-;

        )
        combin(a,i-,m-,b,M);
//从n-1选取最大值,重复地一部
        else
        {
            ;j<M;j++)
            printf("%4d",a[b[j]]);
            printf("\n");
        }
    }
}
int main()
{
    ]={,,,,};
    ];
    combin(a,,,b,);
    ;
}
 
 
上一篇:NGINX部署配置参考.


下一篇:poj 2051.Argus 解题报告