Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 9. We are given 5 integer numbers.
- // Write a program that checks if the sum of some
- // subset of them is 0. Example: 3, -2, 1, 1, 8 1+1-2=0.
- Console.Write("Input the wanted sum: ");
- long wantedSum = long.Parse(Console.ReadLine());
- Console.Write("Number of elements: ");
- long numberOfElements = long.Parse(Console.ReadLine());
- long[] arrayList = new long[numberOfElements];
- int counter = 0;
- string subset;
- for (int i = 0; i < arrayList.Length; i++)
- {
- Console.Write("\nEnter element {0} = ", i + 1);
- arrayList[i] = long.Parse(Console.ReadLine());
- }
- int numberOfCombinations = (int)Math.Pow(2, numberOfElements);
- for (int i = 1; i < numberOfCombinations; i++)
- {
- subset = "";
- long checkingSum = 0;
- for (int j = 0; j <= numberOfElements; j++)
- {
- int mask = 1 << j;
- int coincidence = i & mask;
- if (coincidence != 0)
- {
- checkingSum = checkingSum + arrayList[j];
- subset = subset + " " + arrayList[j];
- }
- }
- if (checkingSum == wantedSum)
- {
- counter++;
- Console.WriteLine("\nSubset: " + subset);
- }
- }
- Console.WriteLine("\nNumber of subsets that have 'sum = 0' is: {0}\n", counter);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement