#include <stdio.h>
#define MAX 10
int datas[MAX];
bool flag[MAX];
int n;
int sum;
void Initialize(int n)
{
for (int i = 0; i < MAX; ++i)
{
flag[i] = false;
}
printf("Input %d datas/n", n);
for (i = 0; i < n; ++i)
{
scanf("%d", &datas[i]);
}
}
void ShowResult()
{
int ji = 1;
for (int i = 0; i < MAX; ++i)
{
if (flag[i])
{
printf("%2d", datas[i]);
ji *= datas[i];
}
}
sum += ji;
printf("/n");
printf("Sum:%d/n/n", sum);
}
void Combination(int start, int count)
{
if (count <= 0)
{
ShowResult();
return ;
}
for (int i = start; i < n; ++i, ++start)
{
if (!flag[i])
{
flag[i] = true;
Combination(start + 1, count - 1);
flag[i] = false;
}
}
}
int main(int argc, char *argv[])
{
int k;
while (scanf("%d %d", &n, &k) != EOF)
{
sum = 0;
Initialize(n);
Combination(0, k);
}
return 0;
}
组合
最新推荐文章于 2024-01-23 17:42:27 发布