Advertisement
Teodor92

SubsetSum

Nov 26th, 2012
1,127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.53 KB | None | 0 0
  1. using System;
  2.  
  3. class SubSetSumBin
  4. {
  5.     static void Main()
  6.     {
  7.         Console.WriteLine("Enter the wanted sum of the subsets:");
  8.         long wantedSum = long.Parse(Console.ReadLine());
  9.         Console.WriteLine("Enter the number of elements:");
  10.         long numberOfElements = long.Parse(Console.ReadLine());
  11.         long[] elements = new long[numberOfElements];
  12.         int counter = 0;
  13.         string subset = "";
  14.         for (int i = 0; i < elements.Length; i++)
  15.         {
  16.             Console.WriteLine("Enter element № {0}", i+1);
  17.             elements[i] = long.Parse(Console.ReadLine());
  18.         }
  19.         int maxSubsets = (int)Math.Pow(2, numberOfElements);
  20.         for (int i = 1; i < maxSubsets; i++)
  21.         {
  22.             subset = "";
  23.             long checkingSum = 0;
  24.             for (int j = 0; j <= numberOfElements; j++)
  25.             {            
  26.                 int mask = 1 << j;        
  27.                 int nAndMask = i & mask;  
  28.                 int bit = nAndMask >> j;
  29.                 if (bit == 1)
  30.                 {
  31.                     checkingSum = checkingSum + elements[j];
  32.                     subset = subset + " " + elements[j];
  33.                 }
  34.             }
  35.             if (checkingSum == wantedSum)
  36.             {
  37.                 Console.WriteLine("Number of subest that have the sum of {0}", wantedSum);
  38.                 counter++;
  39.                 Console.WriteLine("This subset has a sum of {0} : {1} ", wantedSum, subset);
  40.             }
  41.         }
  42.         Console.WriteLine(counter);
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement