ntamas

Telekom feltöltés

Sep 27th, 2021
1,006
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.   class Program
  9.   {
  10.     static void Main(string[] args)
  11.     {
  12.       /*int[] prices = { 533, 1000, 1060, 1640, 3550, 3559};*/
  13.       int[] prices = { 990, 1000, 1490, 1640, 3550};
  14.       for (int i = 1; i <= prices.Length; i++)
  15.       {
  16.         PrintValidCombinations(prices, i);
  17.       }
  18.       Console.ReadKey();
  19.     }
  20.     private static void PrintValidCombinations(int[] array, int rank)
  21.     {
  22.       PrintValidCombinations(new int[rank + 1], array, 0, rank, 0, array.Length - 1);
  23.     }
  24.  
  25.     private static void PrintValidCombinations(int[] current, int[] array, int index, int rank, int start, int end)
  26.     {
  27.       if (index == rank)
  28.       {
  29.         int sum = 0;
  30.         int[] prices = new int[current.Length - 1];
  31.         for (int i = 0; i < rank; i++)
  32.         {
  33.           sum += array[current[i]];
  34.           prices[i] = array[current[i]];
  35.         }
  36.  
  37.         if (IsValid(sum))
  38.         {
  39.           for (int i = 0; i < prices.Length - 1; i++)
  40.           {
  41.             Console.Write("{0} + ", prices[i]);
  42.           }
  43.           Console.WriteLine("{0} = {1}", prices[prices.Length - 1], sum);
  44.         }
  45.       }
  46.       else
  47.       {
  48.         for (int i = start; i <= end; i++)
  49.         {
  50.           current[index] = i;
  51.           PrintValidCombinations(current, array, index + 1, rank, i, end);
  52.         }
  53.       }
  54.     }
  55.  
  56.     private static bool IsValid(int sum)
  57.     {
  58.       return sum % 100 == 0 && 2500 <= sum && sum < 15000; // az érvényességi idő 2500-tól nő
  59.     }
  60.   }
  61. }
  62.  
RAW Paste Data