Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp18
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Задайте длину последовательности\n");
- int n = Convert.ToInt32(Console.ReadLine());
- int[] Start_Arr = new int[n];
- int[] First_Arr = new int[n];
- int[] Second_Arr = new int[n];
- Console.WriteLine("Задайте последовательность:");
- for (int i = 0; i < n; i++)
- {
- Start_Arr[i] = Convert.ToInt32(Console.ReadLine());
- }
- RecursiveMethod(ref Start_Arr, ref First_Arr, ref Second_Arr, n);
- Console.ReadKey();
- }
- static void RecursiveMethod(ref int[] Start_Arr, ref int[] First_Arr, ref int[] Second_Arr, int n, int k = 0)
- {
- int max = Find_Max(ref Start_Arr, n);
- bool x = Smaller_Amount(First_Arr, Second_Arr, n);
- if ((k < n) && x) First_Arr[k] = max;
- else if (k < n) Second_Arr[k] = max;
- if (k < n)
- {
- k++;
- RecursiveMethod(ref Start_Arr, ref First_Arr, ref Second_Arr, n, k);
- }
- else Out (First_Arr, Second_Arr, n);
- }
- static int Find_Max(ref int[] Start_Arr, int n)
- {
- int max = 0;
- int j = 0;
- for (int i = 0; i < n; i++)
- {
- if (Start_Arr[i] > max)
- {
- max = Start_Arr[i];
- j = i;
- }
- }
- Start_Arr[j] = 0;
- return max;
- }
- static bool Smaller_Amount ( int[] First_Arr, int[] Second_Arr,int n)
- {
- int s1 = 0;
- int s2 = 0;
- bool x;
- for (int i = 0; i < n; i++)
- {
- s1 += First_Arr[i];
- s2 += Second_Arr[i];
- }
- if (s2 > s1) x = true;
- else x = false;
- return x;
- }
- static void Out(int [] First_Arr, int [] Second_Arr, int n)
- {
- Console.Write("Первая группа чисел: ");
- for (int i = 0; i < n; i++)
- if (First_Arr[i] != 0)
- Console.Write($"{First_Arr[i]}; ");
- Console.WriteLine("");
- Console.Write("Вторая группа чисел: ");
- for (int i = 0; i < n; i++)
- if (Second_Arr[i] != 0)
- Console.Write($"{Second_Arr[i]}; ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement