Subset Sum Program in C
C Program Code:
#include <stdio.h>
int main()
{
int n, d, i, j, found = 0;
printf("Enter number of elements: ");
scanf("%d", &n);
int s[n];
printf("Enter elements:\n");
for(i = 0; i < n; i++)
{
scanf("%d", &s[i]);
}
printf("Enter required sum: ");
scanf("%d", &d);
printf("Subsets with sum %d are:\n", d);
for(i = 0; i < (1 << n); i++)
{
int sum = 0;
for(j = 0; j < n; j++)
{
if(i & (1 << j))
{
sum += s[j];
}
}
if(sum == d)
{
found = 1;
printf("{ ");
for(j = 0; j < n; j++)
{
if(i & (1 << j))
{
printf("%d ", s[j]);
}
}
printf("}\n");
}
}
if(found == 0)
{
printf("No subset found.\n");
}
return 0;
}
Sample Output
Enter number of elements: 4
Enter elements:
1 2 3 4
Enter required sum: 5
Subsets with sum 5 are:
{ 2 3 }
{ 1 4 }