iliqnvidenov

Untitled

Oct 21st, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.33 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _04.UnlimitedAmoutOfCoins
  8. {
  9.     class Program
  10.     {
  11.         static List<int> currentCoins = new List<int>();
  12.         static int currentSum = 0;
  13.         static int counter = 0;
  14.         static void Main(string[] args)
  15.         {
  16.             int sum = int.Parse(Console.ReadLine());
  17.             int[] coins = Console.ReadLine().Split().Select(int.Parse).ToArray();
  18.  
  19.             GenerateCombinationsOfCoins(coins, sum);
  20.             Console.WriteLine("Total sum: {0}", counter);
  21.         }
  22.  
  23.         private static void GenerateCombinationsOfCoins(int[] coins, int sum, int index = 0)
  24.         {
  25.             if (currentSum == sum)
  26.             {
  27.                 Console.WriteLine(string.Join(", ", currentCoins));
  28.                 counter++;
  29.                 return;
  30.             }
  31.  
  32.             if (currentSum > sum)
  33.             {
  34.                 return;
  35.             }
  36.  
  37.             for (int i = index; i < coins.Length; i++)
  38.             {
  39.                 currentCoins.Add(coins[i]);
  40.                 currentSum += coins[i];
  41.                 GenerateCombinationsOfCoins(coins, sum, i);
  42.                 currentCoins.Remove(coins[i]);
  43.                 currentSum -= coins[i];
  44.             }
  45.         }
  46.  
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment