sum_subset

 #include<stdio.h>

#include<stdbool.h>

#define max 100

void subsetSum(int set[],int subset[],int n,int subsize,int total,int nodecount,int sum){
  if(total==sum){
    printf("Subset found:{");
    for(int i=0;i<subsize;i++){
      printf("%d",subset[i]);
    }
    printf("}\n");
    return;
  }
  else{
    for(int i=nodecount;i<n;i++){
      subset[subsize] = set[i];
      subsetSum(set,subset,n,subsize+1,total+set[i],i+1,sum);
    }
  }
}

int main(){
  int set[max];
  int subset[max];
  int n,sum;
  printf("Enter the no. of elements in set:");
  scanf("%d",&n);
  printf("Enter the elements: \n");
  for(int i=0;i<n;i++){
    scanf("%d",&set[i]);
  }

  printf("Enter sum to find subset for:");
  scanf("%d",&sum);
 
  printf("subset with sum:%d\n",sum);
  subsetSum(set,subset,n,0,0,0,sum);
  return 0;
}

Comments