69,369
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#define N 4
int mask[N];
void subsum (int *set, const int size, int c, int m)
{
int sum = 0;
int i = 0;
if(c == size)
{
for(i = 0; i < size; i++)
if(mask[i] == 1)
sum = sum + set[i];
if(sum == m)
{
printf(" { ");
for(i = 0; i < size; i++)
if(mask[i] == 1)
printf("%d ",set[i]);
printf("}\n");
}
}
else
{
mask[c] = 1;
subsum(set, size, c + 1, m);
mask[c] = 0;
subsum(set, size, c + 1, m);
}
}
int main ()
{
int set[N] = {3,2,5,6};
subsum(set,N,0,11);
system("PAUSE");
return 0;
}