Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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.
- */
- using System;
- class SumOfSubsets
- {
- static void Main()
- {
- int[] number = new int[5];
- byte countZero = 0;
- int sumZeroCounter = 0;
- int numbersCount = number.Length;
- for (int variablesCount = 0; variablesCount < numbersCount; variablesCount++)
- {
- number[variablesCount] = InputDataInt(variablesCount);
- }
- Console.WriteLine();
- for (int i = 0; i < numbersCount; i++)
- {
- if (number[i] == 0)
- {
- countZero++;
- }
- }
- if (countZero == numbersCount)
- {
- Console.WriteLine("All numbers are 0!" + Environment.NewLine);
- }
- for (int j = 0; j < numbersCount; j++)
- {
- for (int k = j + 1; k < numbersCount; k++)
- {
- if (number[j] + number[k] == 0)
- {
- sumZeroCounter++;
- Console.WriteLine("{2}) {0} + {1} = 0", number[j], number[k], sumZeroCounter);
- }
- for (int l = k + 1; l < numbersCount; l++)
- {
- if (number[j] + number[k] + number[l] == 0)
- {
- sumZeroCounter++;
- Console.WriteLine("{3}) {0} + {1} + {2} = 0", number[j], number[k], number[l], sumZeroCounter);
- }
- for (int m = l + 1; m < numbersCount; m++)
- {
- if (number[j] + number[k] + number[l] + number[m] == 0)
- {
- sumZeroCounter++;
- Console.WriteLine("{4}) {0} + {1} + {2} + {3} = 0", number[j], number[k], number[l], number[m], sumZeroCounter);
- }
- for (int n = m + 1; n < numbersCount; n++)
- {
- if (number[j] + number[k] + number[l] + number[m] + number[n] == 0)
- {
- sumZeroCounter++;
- Console.WriteLine("{5}) {0} + {1} + {2} + {3} + {4} = 0", number[j], number[k], number[l], number[m], number[n], sumZeroCounter);
- }
- }
- }
- }
- }
- }
- if (sumZeroCounter == 1)
- {
- Console.WriteLine();
- Console.WriteLine("There is {0} combination where the sum of subsets is equal to zero!", sumZeroCounter);
- }
- else
- {
- Console.WriteLine("There are {0} combinations where the sum of subsets is equal to zero!", sumZeroCounter);
- }
- Console.WriteLine();
- Main();
- }
- static int InputDataInt(int variablesCount)
- {
- int number;
- string invalidInput = "Please enter a value between " + int.MinValue + " and " + int.MaxValue + Environment.NewLine;
- Console.WriteLine("Enter number " + (variablesCount + 1) + ": ");
- while (!(int.TryParse(Console.ReadLine(), out number)))
- {
- Console.WriteLine(invalidInput);
- Console.WriteLine("Enter number " + (variablesCount + 1) + ": ");
- }
- return number;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment