Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] prices = { 533, 1000, 1060, 1640, 3550, 3559};
- for (int i = 1; i <= prices.Length; i++)
- {
- PrintValidCombinations(prices, i);
- }
- Console.ReadKey();
- }
- private static void PrintValidCombinations(int[] array, int rank)
- {
- PrintValidCombinations(new int[rank + 1], array, 0, rank, 0, array.Length - 1);
- }
- private static void PrintValidCombinations(int[] current, int[] array, int index, int rank, int start, int end)
- {
- if (index == rank)
- {
- int sum = 0;
- int[] prices = new int[current.Length - 1];
- for (int i = 0; i < rank; i++)
- {
- sum += array[current[i]];
- prices[i] = array[current[i]];
- }
- if (IsValid(sum))
- {
- for (int i = 0; i < prices.Length - 1; i++)
- {
- Console.Write("{0} + ", prices[i]);
- }
- Console.WriteLine("{0} = {1}", prices[prices.Length - 1], sum);
- }
- }
- else
- {
- for (int i = start; i <= end; i++)
- {
- current[index] = i;
- PrintValidCombinations(current, array, index + 1, rank, i, end);
- }
- }
- }
- private static bool IsValid(int sum)
- {
- return sum % 100 == 0 && 1500 <= sum && sum < 15000;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement