Advertisement
Guest User

Untitled

a guest
Feb 14th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.53 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Numerics;
  5.  
  6. namespace Exercises_11.Array_Manipulator
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             List<int> numbers = Console.ReadLine().Split().Select(int.Parse).ToList();
  13.             string[] action = Console.ReadLine().Split().ToArray();
  14.             string oddEven = "";
  15.             int index = 0;
  16.  
  17.             string command = action[0]; ;
  18.  
  19.             while (command != "end")
  20.             {
  21.                 if (command == "exchange")
  22.                 {
  23.                     index = int.Parse(action[1]);
  24.                     if (index > numbers.Count - 1 || index < 0)
  25.                     {
  26.                         Console.WriteLine("Invalid index");
  27.                     }
  28.                     else
  29.                     {
  30.                         Exchange(numbers, index);
  31.                     }
  32.  
  33.                 }
  34.                 else if (command == "max")
  35.                 {
  36.                     oddEven = action[1].ToString();
  37.                     if (oddEven == "odd")
  38.                     {
  39.                         MaxOdd(index, numbers);
  40.                     }
  41.                     else if (oddEven == "even")
  42.                     {
  43.                         MaxEven(index, numbers);
  44.                     }
  45.                 }
  46.                 else if (command == "min")
  47.                 {
  48.                     oddEven = action[1].ToString();
  49.                     if (oddEven == "odd")
  50.                     {
  51.                         MinOdd(index, numbers);
  52.                     }
  53.                     else if (oddEven == "even")
  54.                     {
  55.                         MinEven(index, numbers);
  56.                     }
  57.                 }
  58.                 else if (command == "first")
  59.                 {
  60.                     index = int.Parse(action[1]);
  61.                     oddEven = action[2].ToString();
  62.                     if (oddEven == "odd")
  63.                     {
  64.                         FirstCountOdd(numbers, index);
  65.                     }
  66.                     else if (oddEven == "even")
  67.                     {
  68.                         FirstCountEven(numbers, index);
  69.                     }
  70.                 }
  71.                 else if (command == "last")
  72.                 {
  73.                     index = int.Parse(action[1]);
  74.                     oddEven = action[2].ToString();
  75.                     if (oddEven == "odd")
  76.                     {
  77.                         LastCountOdd(numbers, index);
  78.                     }
  79.                     else if (oddEven == "even")
  80.                     {
  81.                         LastCountEven(numbers, index);
  82.                     }
  83.                 }
  84.  
  85.                 action = Console.ReadLine().Split().ToArray();
  86.                 command = action[0];
  87.             }
  88.  
  89.             Console.WriteLine($"[{String.Join(", ", numbers)}]");
  90.         }
  91.         static List<int> Exchange(List<int> numbers, int index)
  92.         {
  93.  
  94.             List<int> firstPart = numbers.Take(index + 1).ToList();
  95.             List<int> secondPart = numbers.Skip(index + 1).ToList();
  96.  
  97.             secondPart.AddRange(firstPart);
  98.             numbers.Clear();
  99.             numbers.AddRange(secondPart);
  100.  
  101.             return numbers;
  102.  
  103.  
  104.         }
  105.         static void MaxEven(int index, List<int> numbers)
  106.         {
  107.             int maxNumber = int.MinValue;
  108.             for (int i = 0; i < numbers.Count; i++)
  109.             {
  110.                 if (numbers[i] % 2 == 0 && numbers[i] >= maxNumber)
  111.                 {
  112.                     maxNumber = numbers[i];
  113.                     index = i;
  114.                 }
  115.             }
  116.             if (maxNumber == int.MinValue)
  117.             {
  118.                 Console.WriteLine("No matches");
  119.             }
  120.             else
  121.             {
  122.                 Console.WriteLine(index);
  123.             }
  124.         }
  125.         static void MaxOdd(int index, List<int> numbers)
  126.         {
  127.             int maxNumber = int.MinValue;
  128.             for (int i = 0; i < numbers.Count; i++)
  129.             {
  130.                 if (numbers[i] % 2 != 0 && numbers[i] >= maxNumber)
  131.                 {
  132.                     maxNumber = numbers[i];
  133.                     index = i;
  134.                 }
  135.             }
  136.             if (maxNumber == int.MinValue)
  137.             {
  138.                 Console.WriteLine("No matches");
  139.             }
  140.             else
  141.             {
  142.                 Console.WriteLine(index);
  143.             }
  144.         }
  145.         static void MinEven(int index, List<int> numbers)
  146.         {
  147.             int minNumber = int.MaxValue;
  148.             for (int i = 0; i < numbers.Count; i++)
  149.             {
  150.                 if (numbers[i] % 2 == 0 && numbers[i] <= minNumber)
  151.                 {
  152.                     minNumber = numbers[i];
  153.                     index = i;
  154.                 }
  155.             }
  156.             if (minNumber == int.MaxValue)
  157.             {
  158.                 Console.WriteLine("No matches");
  159.             }
  160.             else
  161.             {
  162.                 Console.WriteLine(index);
  163.             }
  164.         }
  165.         static void MinOdd(int index, List<int> numbers)
  166.         {
  167.             int minNumber = int.MaxValue;
  168.             for (int i = 0; i < numbers.Count; i++)
  169.             {
  170.                 if (numbers[i] % 2 != 0 && numbers[i] <= minNumber)
  171.                 {
  172.                     minNumber = numbers[i];
  173.                     index = i;
  174.                 }
  175.             }
  176.             if (minNumber == int.MaxValue)
  177.             {
  178.                 Console.WriteLine("No matches");
  179.             }
  180.             else
  181.             {
  182.                 Console.WriteLine(index);
  183.             }
  184.         }
  185.         static void FirstCountOdd(List<int> numbers, int index)
  186.         {
  187.             List<int> odds = new List<int>();
  188.             for (int i = 0; i < numbers.Count; i++)
  189.             {
  190.                 if (numbers[i] % 2 != 0)
  191.                 {
  192.                     odds.Add(numbers[i]);
  193.                 }
  194.             }
  195.             if (numbers.Count < index)
  196.             {
  197.                 Console.WriteLine("Invalid count");
  198.                 return;
  199.             }
  200.             if (odds.Count == 0)
  201.             {
  202.                 Console.WriteLine("[]");
  203.             }
  204.             else
  205.             {
  206.                 Console.WriteLine($"[{String.Join(", ", odds.Take(index))}]");
  207.             }
  208.  
  209.         }
  210.         static void FirstCountEven(List<int> numbers, int index)
  211.         {
  212.             List<int> evens = new List<int>();
  213.             for (int i = 0; i < numbers.Count; i++)
  214.             {
  215.                 if (numbers[i] % 2 == 0)
  216.                 {
  217.                     evens.Add(numbers[i]);
  218.                 }
  219.             }
  220.             if (numbers.Count < index)
  221.             {
  222.                 Console.WriteLine("Invalid count");
  223.                 return;
  224.             }
  225.             else if (evens.Count == 0)
  226.             {
  227.                 Console.WriteLine("[]");
  228.             }
  229.             else
  230.             {
  231.                 Console.WriteLine($"[{String.Join(", ", evens.Take(index))}]");
  232.             }
  233.  
  234.  
  235.         }
  236.         static void LastCountOdd(List<int> numbers, int index)
  237.         {
  238.             List<int> odds = new List<int>();
  239.             for (int i = 0; i < numbers.Count; i++)
  240.             {
  241.                 if (numbers[i] % 2 != 0)
  242.                 {
  243.                     odds.Add(numbers[i]);
  244.                 }
  245.             }
  246.  
  247.             if (numbers.Count < index)
  248.             {
  249.                 Console.WriteLine("Invalid count");
  250.                 return;
  251.             }
  252.             else if (odds.Count == 0)
  253.             {
  254.                 Console.WriteLine("[]");
  255.             }
  256.             else
  257.             {
  258.                 Console.WriteLine($"[{String.Join(", ", odds.Skip(odds.Count - index))}]");
  259.             }
  260.         }
  261.         static void LastCountEven(List<int> numbers, int index)
  262.         {
  263.             List<int> evens = new List<int>();
  264.             for (int i = 0; i < numbers.Count; i++)
  265.             {
  266.                 if (numbers[i] % 2 == 0)
  267.                 {
  268.                     evens.Add(numbers[i]);
  269.                 }
  270.             }
  271.  
  272.             if (numbers.Count < index)
  273.             {
  274.                 Console.WriteLine("Invalid count");
  275.                 return;
  276.             }
  277.             else if (evens.Count == 0)
  278.             {
  279.                 Console.WriteLine("[]");
  280.             }
  281.             else
  282.             {
  283.                 Console.WriteLine($"[{String.Join(", ", evens.Skip(evens.Count - index))}]");
  284.             }
  285.         }
  286.     }
  287. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement