Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.85 KB | None | 0 0
  1. using System;
  2.  
  3.  
  4. namespace ZeroSubsets
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Console.WriteLine("Enter numbers count:");
  11.             int numberCount = int.Parse(Console.ReadLine());
  12.             Console.WriteLine("Enter subset sum:");
  13.             int subsetSum = int.Parse(Console.ReadLine());
  14.             int[] numbersArray = new int[numberCount];
  15.             for (int i = 0; i < numberCount; i++)
  16.             {
  17.                 numbersArray[i] = int.Parse(Console.ReadLine());
  18.             }
  19.             int iterations = (1 << numberCount) - 1;
  20.             int bitMask = 0;
  21.             bool noZeroSubset = true;
  22.             int currentSum = 0;
  23.             for (int i = 1; i < iterations; i++)
  24.             {
  25.                 bitMask = i;
  26.                 currentSum = 0;
  27.                 int j = 0;
  28.                 int index = 0;
  29.                 string[] sumText = new string[numberCount];
  30.                 while (j < numberCount)
  31.                 {
  32.                     if ((bitMask & 1) == 1)
  33.                     {
  34.                         currentSum += numbersArray[j];
  35.                         sumText[index] = numbersArray[j].ToString();
  36.                         index++;
  37.                     }
  38.                     bitMask = bitMask >> 1;
  39.                     j++;
  40.                 }
  41.                 if (currentSum == subsetSum)
  42.                 {
  43.                     noZeroSubset = false;
  44.                     foreach (var number in sumText)
  45.                     {
  46.                         Console.Write(number + "+");
  47.                     }
  48.                     Console.Write("={0}", subsetSum);
  49.                     Console.WriteLine();
  50.                 }
  51.             }
  52.             if (noZeroSubset)
  53.             {
  54.                 Console.WriteLine("No zero subset");
  55.             }
  56.  
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement