Advertisement
JavaFan

Sum Of Subset

Nov 8th, 2013
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. // 9. We are given 5 integer numbers.
  2. // Write a program that checks if the sum of some
  3. // subset of them is 0. Example: 3, -2, 1, 1, 8  1+1-2=0.
  4.  
  5. Console.Write("Input the wanted sum: ");
  6. long wantedSum = long.Parse(Console.ReadLine());
  7.  
  8. Console.Write("Number of elements: ");
  9. long numberOfElements = long.Parse(Console.ReadLine());
  10.  
  11. long[] arrayList = new long[numberOfElements];
  12. int counter = 0;
  13. string subset;
  14.  
  15. for (int i = 0; i < arrayList.Length; i++)
  16. {
  17. Console.Write("\nEnter element {0} = ", i + 1);
  18. arrayList[i] = long.Parse(Console.ReadLine());
  19. }
  20.  
  21. int numberOfCombinations = (int)Math.Pow(2, numberOfElements);
  22.  
  23. for (int i = 1; i < numberOfCombinations; i++)
  24. {
  25. subset = "";
  26. long checkingSum = 0;
  27. for (int j = 0; j <= numberOfElements; j++)
  28. {
  29. int mask = 1 << j;
  30. int coincidence = i & mask;
  31.  
  32. if (coincidence != 0)
  33. {
  34. checkingSum = checkingSum + arrayList[j];
  35. subset = subset + " " + arrayList[j];
  36. }
  37. }
  38. if (checkingSum == wantedSum)
  39. {
  40. counter++;
  41. Console.WriteLine("\nSubset: " + subset);
  42. }
  43. }
  44. Console.WriteLine("\nNumber of subsets that have 'sum = 0' is: {0}\n", counter);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement